.select2-results__options {\n max-height: 200px;\n overflow-y: auto; }\n .select2-container--default .select2-results__option[role=group] {\n padding: 0; }\n .select2-container--default .select2-results__option[aria-disabled=true] {\n color: #999; }\n .select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #ddd; }\n .select2-container--default .select2-results__option .select2-results__option {\n padding-left: 1em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n padding-left: 0; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -1em;\n padding-left: 2em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -2em;\n padding-left: 3em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -3em;\n padding-left: 4em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -4em;\n padding-left: 5em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -5em;\n padding-left: 6em; }\n .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: #5897fb;\n color: white; }\n .select2-container--default .select2-results__group {\n cursor: default;\n display: block;\n padding: 6px;\n color: gray; }\n /* stylelint-disable-next-line selector-type-no-unknown */\n :host.material {\n display: inline-block;\n width: 300px; }\n :host.material > .select2-container {\n padding-bottom: 1.29688em;\n vertical-align: inherit; }\n :host.material > .select2-container .selection {\n padding: 0.4375em 0;\n border-top: 0.84375em solid transparent;\n display: inline-flex;\n align-items: baseline;\n width: 100%;\n height: auto; }\n :host.material .select2-container--default .select2-selection--single,\n :host.material .select2-container--default .select2-selection--multiple {\n width: 100%;\n border: 0;\n border-radius: 0;\n height: 24px;\n box-sizing: border-box; }\n :host.material .select2-container--default .select2-selection--single::before,\n :host.material .select2-container--default .select2-selection--multiple::before {\n content: ' ';\n display: block;\n position: absolute;\n bottom: 1.65em;\n background-color: #ddd;\n height: 1px;\n width: 100%; }\n :host.material .select2-container--default .select2-selection--single::after,\n :host.material .select2-container--default .select2-selection--multiple::after {\n content: ' ';\n display: block;\n position: absolute;\n bottom: 1.63em;\n background-color: #5a419e;\n height: 2px;\n width: 0%;\n left: 50%;\n transition: none; }\n :host.material .select2-container--default .select2-selection--single .select2-selection__rendered,\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n padding-left: 1px;\n line-height: inherit; }\n :host.material .select2-container--default .select2-selection--single .select2-selection__placeholder,\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n display: block;\n color: rgba(0, 0, 0, 0.38);\n transition: -webkit-transform 0.3s;\n transition: transform 0.3s;\n transition: transform 0.3s, -webkit-transform 0.3s;\n position: absolute;\n -webkit-transform-origin: 0 21px;\n transform-origin: 0 21px;\n left: 0;\n top: 20px; }\n :host.material .select2-container--default .select2-container--open {\n left: 0;\n bottom: 1.6em; }\n :host.material .select2-container--default .select2-selection__placeholder__option {\n -webkit-transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\n transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\n width: 133.33333%; }\n :host.material .select2-container--default .select2-selection__arrow {\n top: 20px; }\n :host.material .select2-container--default.select2-container--open .select2-selection--single::after,\n :host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,\n :host.material .select2-container--default .select2-focused .select2-selection--single::after,\n :host.material .select2-container--default .select2-focused .select2-selection--multiple::after {\n transition: width 0.3s cubic-bezier(0.12, 1, 0.77, 1), left 0.3s cubic-bezier(0.12, 1, 0.77, 1);\n width: 100%;\n left: 0%; }\n :host.material .select2-container--default .select2-dropdown {\n border-radius: 0;\n border: 0;\n box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5); }\n :host.material .select2-container--default .select2-results__option[aria-selected=true],\n :host.material .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: rgba(0, 0, 0, 0.04);\n color: #000; }\n :host.material .select2-container--default .select2-results__option[aria-selected=true] {\n color: #ff5722; }\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single,\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple {\n background-color: transparent; }\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single::before,\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0);\n background-size: 4px 1px;\n background-repeat: repeat-x;\n background-color: transparent;\n background-position: 0 bottom; }\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after {\n background-color: red; }\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--single,\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n border: 0; }\n :host.material .select2-subscript-wrapper {\n position: absolute;\n top: calc(100% - 1.72917em);\n font-size: 75%; }\n /* stylelint-disable selector-type-no-unknown */\n @supports (-moz-appearance: none) {\n select2.material .select2-container--default .select2-selection--single,\n select2.material .select2-container--default .select2-selection--multiple {\n height: 26px; } }\n @supports (-ms-scroll-limit: 0) {\n select2.material .select2-container--default .select2-selection--single,\n select2.material .select2-container--default .select2-selection--multiple {\n height: 25px; } }\n"
+module.exports = ".select2-container {\n box-sizing: border-box;\n display: inline-block;\n margin: 0;\n position: relative;\n vertical-align: middle;\n width: 100%; }\n .select2-container .select2-container-dropdown {\n position: absolute;\n width: 0px; }\n .select2-container .select2-selection--single {\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 28px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .select2-container .select2-selection--single .select2-selection__rendered {\n display: block;\n padding-left: 8px;\n padding-right: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n .select2-container .select2-selection--single .select2-selection__clear {\n position: relative; }\n .select2-container .select2-selection--multiple {\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n min-height: 32px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .select2-container .select2-selection--multiple .select2-selection__rendered {\n display: inline-block;\n overflow: hidden;\n padding-left: 8px;\n text-overflow: ellipsis;\n white-space: nowrap; }\n .select2-container .select2-search--inline {\n float: left; }\n .select2-container .select2-search--inline .select2-search__field {\n box-sizing: border-box;\n border: none;\n font-size: 100%;\n margin-top: 5px;\n padding: 0; }\n .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\n -webkit-appearance: none; }\n .select2-dropdown {\n background-color: white;\n border: 1px solid #aaa;\n border-radius: 4px;\n box-sizing: border-box;\n display: block;\n position: absolute;\n left: -100000px;\n width: 100%;\n z-index: 1051; }\n .select2-results {\n display: block; }\n .select2-results__options {\n list-style: none;\n margin: 0;\n padding: 0; }\n .select2-results__option {\n padding: 6px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .select2-results__option[aria-selected] {\n cursor: pointer; }\n .select2-container.select2-container-dropdown.select2-container--open {\n width: 100%; }\n .select2-container--open .select2-dropdown {\n left: 0; }\n .select2-container--open .select2-dropdown--above {\n border-bottom: none;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0; }\n .select2-container--open .select2-dropdown--below {\n border-top: none;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .select2-search--dropdown {\n display: block;\n padding: 4px; }\n .select2-search--dropdown .select2-search__field {\n padding: 4px;\n width: 100%;\n box-sizing: border-box; }\n .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\n -webkit-appearance: none; }\n .select2-search--dropdown.select2-search--hide {\n display: none; }\n .select2-close-mask {\n border: 0;\n margin: 0;\n padding: 0;\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n min-height: 100%;\n min-width: 100%;\n height: auto;\n width: auto;\n opacity: 0;\n z-index: 99;\n background-color: #fff;\n filter: alpha(opacity=0); }\n .select2-hidden-accessible {\n border: 0 !important;\n clip: rect(0 0 0 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important; }\n .select2-container--default .select2-selection--single {\n background-color: #fff;\n border: 1px solid #aaa;\n border-radius: 4px; }\n .select2-container--default .select2-selection--single .select2-selection__rendered {\n color: #444;\n line-height: 28px; }\n .select2-container--default .select2-selection--single .select2-selection__clear {\n cursor: pointer;\n float: right;\n font-weight: bold; }\n .select2-container--default .select2-selection--single .select2-selection__placeholder {\n color: #999; }\n .select2-container--default .select2-selection--single .select2-selection__placeholder__option {\n display: none; }\n .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 26px;\n position: absolute;\n top: 1px;\n right: 1px;\n width: 20px; }\n .select2-container--default .select2-selection--single .select2-selection__arrow b {\n border-color: #888 transparent;\n border-style: solid;\n border-width: 5px 4px 0;\n height: 0;\n left: 50%;\n margin-left: -4px;\n margin-top: -2px;\n position: absolute;\n top: 50%;\n width: 0; }\n .select2-container--default.select2-container--disabled .select2-selection--single {\n background-color: #eee;\n cursor: default; }\n .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\n display: none; }\n .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\n border-color: transparent transparent #888;\n border-width: 0 4px 5px; }\n .select2-container--default .select2-selection--multiple {\n background-color: white;\n border: 1px solid #aaa;\n border-radius: 4px;\n cursor: text; }\n .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n box-sizing: border-box;\n list-style: none;\n margin: 0;\n padding: 0 5px;\n width: 100%; }\n .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n list-style: none; }\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n color: #999;\n margin-top: 5px;\n float: left; }\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder__option {\n display: none; }\n .select2-container--default .select2-selection--multiple .select2-selection__clear {\n cursor: pointer;\n float: right;\n font-weight: bold;\n margin-top: 5px;\n margin-right: 10px; }\n .select2-container--default .select2-selection--multiple .select2-selection__choice {\n background-color: #e4e4e4;\n border: 1px solid #aaa;\n border-radius: 4px;\n cursor: default;\n float: left;\n margin-right: 5px;\n margin-top: 5px;\n padding: 0 5px; }\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n color: #999;\n cursor: pointer;\n display: inline-block;\n font-weight: bold;\n margin-right: 2px; }\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n color: #333; }\n .select2-container--default.select2-container--focused .select2-selection--multiple {\n border: solid black 1px;\n outline: 0; }\n .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single,\n.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n border: solid black 1px;\n outline: 0; }\n .select2-container--default.select2-container--disabled .select2-selection--multiple {\n background-color: #eee;\n cursor: default; }\n .select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n display: none; }\n .select2-container--default.select2-container--open.select2-container--above .select2-selection--single,\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .select2-container--default.select2-container--open.select2-container--below .select2-selection--single,\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0; }\n .select2-container--default .select2-search--dropdown .select2-search__field {\n border: 1px solid #aaa; }\n .select2-container--default .select2-search--inline .select2-search__field {\n background: transparent;\n border: none;\n outline: 0;\n box-shadow: none;\n -webkit-appearance: textfield; }\n .select2-container--default .select2-results > .select2-results__options {\n max-height: 200px;\n overflow-y: auto; }\n .select2-container--default .select2-results__option[role=group] {\n padding: 0; }\n .select2-container--default .select2-results__option[aria-disabled=true] {\n color: #999; }\n .select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #ddd; }\n .select2-container--default .select2-results__option .select2-results__option {\n padding-left: 1em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n padding-left: 0; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -1em;\n padding-left: 2em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -2em;\n padding-left: 3em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -3em;\n padding-left: 4em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -4em;\n padding-left: 5em; }\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -5em;\n padding-left: 6em; }\n .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: #5897fb;\n color: white; }\n .select2-container--default .select2-results__group {\n cursor: default;\n display: block;\n padding: 6px;\n color: gray; }\n /* stylelint-disable-next-line selector-type-no-unknown */\n :host.material {\n display: inline-block;\n width: 300px; }\n :host.material > .select2-container {\n padding-bottom: 1.29688em;\n vertical-align: inherit; }\n :host.material > .select2-container .selection {\n padding: 0.4375em 0;\n border-top: 0.84375em solid transparent;\n display: inline-flex;\n align-items: baseline;\n width: 100%;\n height: auto; }\n :host.material .select2-container--default .select2-selection--single,\n :host.material .select2-container--default .select2-selection--multiple {\n width: 100%;\n border: 0;\n border-radius: 0;\n height: 24px;\n box-sizing: border-box; }\n :host.material .select2-container--default .select2-selection--single::before,\n :host.material .select2-container--default .select2-selection--multiple::before {\n content: ' ';\n display: block;\n position: absolute;\n bottom: 1.65em;\n background-color: #ddd;\n height: 1px;\n width: 100%; }\n :host.material .select2-container--default .select2-selection--single::after,\n :host.material .select2-container--default .select2-selection--multiple::after {\n content: ' ';\n display: block;\n position: absolute;\n bottom: 1.63em;\n background-color: #5a419e;\n height: 2px;\n width: 0%;\n left: 50%;\n transition: none; }\n :host.material .select2-container--default .select2-selection--single .select2-selection__rendered,\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n padding-left: 1px;\n line-height: inherit; }\n :host.material .select2-container--default .select2-selection--single .select2-selection__placeholder,\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n display: block;\n color: rgba(0, 0, 0, 0.38);\n transition: -webkit-transform 0.3s;\n transition: transform 0.3s;\n transition: transform 0.3s, -webkit-transform 0.3s;\n position: absolute;\n -webkit-transform-origin: 0 21px;\n transform-origin: 0 21px;\n left: 0;\n top: 20px; }\n :host.material .select2-container--default .select2-container--open {\n left: 0;\n bottom: 1.6em; }\n :host.material .select2-container--default .select2-selection__placeholder__option {\n -webkit-transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\n transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\n width: 133.33333%; }\n :host.material .select2-container--default .select2-selection__arrow {\n top: 20px; }\n :host.material .select2-container--default.select2-container--open .select2-selection--single::after,\n :host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,\n :host.material .select2-container--default .select2-focused .select2-selection--single::after,\n :host.material .select2-container--default .select2-focused .select2-selection--multiple::after {\n transition: width 0.3s cubic-bezier(0.12, 1, 0.77, 1), left 0.3s cubic-bezier(0.12, 1, 0.77, 1);\n width: 100%;\n left: 0%; }\n :host.material .select2-container--default .select2-dropdown {\n border-radius: 0;\n border: 0;\n box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5); }\n :host.material .select2-container--default .select2-results__option[aria-selected=true],\n :host.material .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: rgba(0, 0, 0, 0.04);\n color: #000; }\n :host.material .select2-container--default .select2-results__option[aria-selected=true] {\n color: #ff5722; }\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single,\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple {\n background-color: transparent; }\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single::before,\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0);\n background-size: 4px 1px;\n background-repeat: repeat-x;\n background-color: transparent;\n background-position: 0 bottom; }\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after {\n background-color: red; }\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--single,\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n border: 0; }\n :host.material .select2-subscript-wrapper {\n position: absolute;\n top: calc(100% - 1.72917em);\n font-size: 75%; }\n /* stylelint-disable selector-type-no-unknown */\n @supports (-moz-appearance: none) {\n select2.material .select2-container--default .select2-selection--single,\n select2.material .select2-container--default .select2-selection--multiple {\n height: 26px; } }\n @supports (-ms-scroll-limit: 0) {\n select2.material .select2-container--default .select2-selection--single,\n select2.material .select2-container--default .select2-selection--multiple {\n height: 25px; } }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3RzL25nLXNlbGVjdDItY29tcG9uZW50L3NyYy9saWIvYzpcXERhdGFcXHNvdXJjZXMtc3ZuXFxwaXRjaFxcbmctc2VsZWN0Mi9wcm9qZWN0c1xcbmctc2VsZWN0Mi1jb21wb25lbnRcXHNyY1xcbGliXFxzZWxlY3QyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQixVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0QixZQUFXLEVBMkRkO0VBakVEO0lBU1EsbUJBQWtCO0lBQ2xCLFdBQVUsRUFDYjtFQVhMO0lBY1EsdUJBQXNCO0lBQ3RCLGdCQUFlO0lBQ2YsZUFBYztJQUNkLGFBQVk7SUFDWiwwQkFBaUI7T0FBakIsdUJBQWlCO1FBQWpCLHNCQUFpQjtZQUFqQixrQkFBaUIsRUFjcEI7RUFoQ0w7TUFxQlksZUFBYztNQUNkLGtCQUFpQjtNQUNqQixvQkFBbUI7TUFDbkIsaUJBQWdCO01BQ2hCLHdCQUF1QjtNQUN2QixvQkFBbUIsRUFDdEI7RUEzQlQ7TUE4QlksbUJBQWtCLEVBQ3JCO0VBL0JUO0lBbUNRLHVCQUFzQjtJQUN0QixnQkFBZTtJQUNmLGVBQWM7SUFDZCxpQkFBZ0I7SUFDaEIsMEJBQWlCO09BQWpCLHVCQUFpQjtRQUFqQixzQkFBaUI7WUFBakIsa0JBQWlCLEVBU3BCO0VBaERMO01BMENZLHNCQUFxQjtNQUNyQixpQkFBZ0I7TUFDaEIsa0JBQWlCO01BQ2pCLHdCQUF1QjtNQUN2QixvQkFBbUIsRUFDdEI7RUEvQ1Q7SUFtRFEsWUFBVyxFQWFkO0VBaEVMO01Bc0RZLHVCQUFzQjtNQUN0QixhQUFZO01BQ1osZ0JBQWU7TUFDZixnQkFBZTtNQUNmLFdBQVUsRUFLYjtFQS9EVDtRQTZEZ0IseUJBQXdCLEVBQzNCO0VBS2I7RUFDSSx3QkFBdUI7RUFDdkIsdUJBQXNCO0VBQ3RCLG1CQUFrQjtFQUNsQix1QkFBc0I7RUFDdEIsZUFBYztF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SUFFSSxhQUFZLEVBQ2YsRUFBQSIsImZpbGUiOiJwcm9qZWN0cy9uZy1zZWxlY3QyLWNvbXBvbmVudC9zcmMvbGliL3NlbGVjdDIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VsZWN0Mi1jb250YWluZXIge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuc2VsZWN0Mi1jb250YWluZXItZHJvcGRvd24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcclxuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0xMDAwMDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogMTA1MTtcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0cyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcclxuICAgIHBhZGRpbmc6IDZweDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuICAgICZbYXJpYS1zZWxlY3RlZF0ge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRyb3Bkb3duLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcclxuICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiA0cHg7XHJcblxyXG4gICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1zZWFyY2gtLWhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNsb3NlLW1hc2sge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuXHJcbiAgICAvLyBzdHlsZXMgcmVxdWlyZWQgZm9yIElFIHRvIHdvcmtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5ID0gMCk7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcclxuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XHJcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNDQ0O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXIge1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjZweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDFweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcblxyXG4gICAgICAgICAgICBiIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzg4OCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA0cHggMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICBiIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4ODg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDRweCA1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzZWQge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDtcclxuICAgICAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLnNlbGVjdDItY29udGFpbmVyLS1vcGVuKSAuc2VsZWN0Mi1mb2N1c2VkIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCBibGFjayAxcHg7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWJlbG93IHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzID4gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gICAgICAgICZbcm9sZT1ncm91cF0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPXRydWVdIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19ncm91cCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFlbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMmVtO1xyXG5cclxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yZW07XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtM2VtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTRlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNWVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZFthcmlhLXNlbGVjdGVkXSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU4OTdmYjtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fZ3JvdXAge1xyXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nOiA2cHg7XHJcbiAgICAgICAgY29sb3I6IGdyYXk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1hdGVyaWFsIHN0eWxlXHJcbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci10eXBlLW5vLXVua25vd24gKi9cclxuOmhvc3QubWF0ZXJpYWwge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG5cclxuICAgICYgPiAuc2VsZWN0Mi1jb250YWluZXIge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI5Njg4ZW07XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XHJcblxyXG4gICAgICAgIC5zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnICc7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMS42NWVtO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAxLjYzZW07XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE0MTllO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAyMXB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHRvcDogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgYm90dG9tOiAxLjZlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXJfX29wdGlvbiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTMzLjMzMzMzJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4gICAgICAgICAgICB0b3A6IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLFxyXG4gICAgICAgIC5zZWxlY3QyLWZvY3VzZWQge1xyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTo6YWZ0ZXIsXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGU6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTIsIDEsIDAuNzcsIDEpLCBsZWZ0IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTIsIDEsIDAuNzcsIDEpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSxcclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRdIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmY1NzIyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjI2KSAwLCByZ2JhKDAsIDAsIDAsIDAuMjYpIDMzJSwgdHJhbnNwYXJlbnQgMCk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgYm90dG9tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubmctaW52YWxpZC5uZy10b3VjaGVkIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICYubmctaW52YWxpZC5uZy10b3VjaGVkIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bm90KC5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbikgLnNlbGVjdDItZm9jdXNlZCB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc3Vic2NyaXB0LXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEuNzI5MTdlbSk7XHJcbiAgICAgICAgZm9udC1zaXplOiA3NSU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1hdGVyaWFsIGZpeCAoZmlyZWZveClcclxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duICovXHJcbkBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOiBub25lKSB7XHJcbiAgICBzZWxlY3QyLm1hdGVyaWFsIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgIGhlaWdodDogMjZweDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gbWF0ZXJpYWwgZml4IChtcyBlZGdlKVxyXG5cclxuQHN1cHBvcnRzICgtbXMtc2Nyb2xsLWxpbWl0OiAwKSB7XHJcbiAgICBzZWxlY3QyLm1hdGVyaWFsIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgIGhlaWdodDogMjVweDtcclxuICAgIH1cclxufVxyXG4iXX0= */"
/***/ }),
@@ -812,34 +843,34 @@ var Select2 = /** @class */ (function () {
this.update.emit(value);
};
Select2.prototype.keyDown = function (e) {
- if (e.keyCode === 40) {
+ if (this._testKey(e, ['ArrowDown', 40])) {
this.moveDown();
e.preventDefault();
}
- else if (e.keyCode === 38) {
+ else if (this._testKey(e, ['ArrowUp', 38])) {
this.moveUp();
e.preventDefault();
}
- else if (e.keyCode === 13) {
+ else if (this._testKey(e, ['Enter', 13])) {
this.selectByEnter();
e.preventDefault();
}
- else if (e.keyCode === 9 && this.isOpen) {
+ else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) {
this.toggleOpenAndClose();
this.focused = false;
}
};
Select2.prototype.openKey = function (e) {
- if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 13) {
+ if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) {
this.toggleOpenAndClose();
e.preventDefault();
}
- else if (e.keyCode === 9) {
+ else if (this._testKey(e, ['Escape', 9])) {
this.focused = false;
this._onTouched();
}
};
- Select2.prototype.trackBy = function (index, item) {
+ Select2.prototype.trackBy = function (_index, item) {
return item.value;
};
Select2.prototype.searchUpdate = function (e) {
@@ -906,6 +937,32 @@ var Select2 = /** @class */ (function () {
(this._parentForm && this._parentForm.submitted);
return !!(isInvalid && (isTouched || isSubmitted));
};
+ Select2.prototype._testKey = function (event, refs) {
+ if (refs === void 0) { refs = []; }
+ return this._isKey(this._getKey(event), refs);
+ };
+ Select2.prototype._getKey = function (event) {
+ var code;
+ if (event.key !== undefined) {
+ code = event.key;
+ }
+ else if (event['keyIdentifier'] !== undefined) {
+ code = event['keyIdentifier'];
+ }
+ else if (event['keyCode'] !== undefined) {
+ code = event['keyCode'];
+ }
+ else {
+ event.preventDefault();
+ }
+ return code;
+ };
+ Select2.prototype._isKey = function (code, refs) {
+ if (refs === void 0) { refs = []; }
+ return refs && refs.length > 0
+ ? refs.indexOf(code) !== -1
+ : false;
+ };
/**
* Sets the selected option based on a value. If no option can be
* found with the designated value, the select trigger is cleared.
@@ -1014,7 +1071,7 @@ var Select2 = /** @class */ (function () {
__decorate([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(),
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"])('id'),
- __metadata("design:type", Object),
+ __metadata("design:type", String),
__metadata("design:paramtypes", [String])
], Select2.prototype, "id", null);
__decorate([
@@ -1089,6 +1146,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js");
/* harmony import */ var _select2_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select2.component */ "./projects/ng-select2-component/src/lib/select2.component.ts");
/* harmony import */ var _select2_hint_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./select2-hint.component */ "./projects/ng-select2-component/src/lib/select2-hint.component.ts");
+/* harmony import */ var _select2_label_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./select2-label.component */ "./projects/ng-select2-component/src/lib/select2-label.component.ts");
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1100,6 +1158,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
+
var Select2Module = /** @class */ (function () {
function Select2Module() {
}
@@ -1112,12 +1171,14 @@ var Select2Module = /** @class */ (function () {
],
declarations: [
_select2_hint_component__WEBPACK_IMPORTED_MODULE_4__["Select2Hint"],
+ _select2_label_component__WEBPACK_IMPORTED_MODULE_5__["Select2Label"],
_select2_component__WEBPACK_IMPORTED_MODULE_3__["Select2"]
],
exports: [
_angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormsModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"],
_select2_hint_component__WEBPACK_IMPORTED_MODULE_4__["Select2Hint"],
+ _select2_label_component__WEBPACK_IMPORTED_MODULE_5__["Select2Label"],
_select2_component__WEBPACK_IMPORTED_MODULE_3__["Select2"]
]
})
@@ -1133,7 +1194,7 @@ var Select2Module = /** @class */ (function () {
/*!*********************************************************!*\
!*** ./projects/ng-select2-component/src/public_api.ts ***!
\*********************************************************/
-/*! exports provided: Select2, Select2Hint, timeout, Select2Utils, Select2Module */
+/*! exports provided: Select2, Select2Hint, Select2Label, timeout, Select2Utils, Select2Module */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -1144,13 +1205,16 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _lib_select2_hint_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/select2-hint.component */ "./projects/ng-select2-component/src/lib/select2-hint.component.ts");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Hint", function() { return _lib_select2_hint_component__WEBPACK_IMPORTED_MODULE_1__["Select2Hint"]; });
-/* harmony import */ var _lib_select2_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/select2-utils */ "./projects/ng-select2-component/src/lib/select2-utils.ts");
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _lib_select2_utils__WEBPACK_IMPORTED_MODULE_2__["timeout"]; });
+/* harmony import */ var _lib_select2_label_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/select2-label.component */ "./projects/ng-select2-component/src/lib/select2-label.component.ts");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Label", function() { return _lib_select2_label_component__WEBPACK_IMPORTED_MODULE_2__["Select2Label"]; });
+
+/* harmony import */ var _lib_select2_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/select2-utils */ "./projects/ng-select2-component/src/lib/select2-utils.ts");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _lib_select2_utils__WEBPACK_IMPORTED_MODULE_3__["timeout"]; });
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Utils", function() { return _lib_select2_utils__WEBPACK_IMPORTED_MODULE_2__["Select2Utils"]; });
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Utils", function() { return _lib_select2_utils__WEBPACK_IMPORTED_MODULE_3__["Select2Utils"]; });
-/* harmony import */ var _lib_select2_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/select2.module */ "./projects/ng-select2-component/src/lib/select2.module.ts");
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Module", function() { return _lib_select2_module__WEBPACK_IMPORTED_MODULE_3__["Select2Module"]; });
+/* harmony import */ var _lib_select2_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/select2.module */ "./projects/ng-select2-component/src/lib/select2.module.ts");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Select2Module", function() { return _lib_select2_module__WEBPACK_IMPORTED_MODULE_4__["Select2Module"]; });
/*
* Public API Surface of ng-select2-component
@@ -1161,6 +1225,7 @@ __webpack_require__.r(__webpack_exports__);
+
/***/ }),
/***/ "./src/$$_lazy_route_resource lazy recursive":
@@ -1174,7 +1239,7 @@ function webpackEmptyAsyncContext(req) {
// Here Promise.resolve().then() is used instead of new Promise() to prevent
// uncaught exception popping up in devtools
return Promise.resolve().then(function() {
- var e = new Error('Cannot find module "' + req + '".');
+ var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
});
@@ -1193,7 +1258,7 @@ webpackEmptyAsyncContext.id = "./src/$$_lazy_route_resource lazy recursive";
/*! no static exports found */
/***/ (function(module, exports) {
-module.exports = ""
+module.exports = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */"
/***/ }),
@@ -1204,7 +1269,7 @@ module.exports = ""
/*! no static exports found */
/***/ (function(module, exports) {
-module.exports = "
\r\n
the source code of the demo\r\n
1. options in group ({{value1}})
\r\n
\r\n \r\n
2. options ({{value2}})
\r\n
\r\n \r\n
3. less options ({{value3}})
\r\n
\r\n \r\n
4. disabled ({{value4}})
\r\n
\r\n\r\n \r\n
5. hide search box ({{value5}})
\r\n
\r\n \r\n
6. placeholder ({{value6}})
\r\n
\r\n \r\n
7. open and search event ({{value7}})
\r\n
\r\n \r\n
9. multiple ({{value9}})
\r\n
\r\n \r\n
10. form binding ({{value10}})
\r\n
\r\n
11. material style ({{value11}})
\r\n
\r\n \r\n
12. boolean value ({{value12}})
\r\n
\r\n \r\n
13. FormControl
\r\n
\r\n \r\n
"
+module.exports = "
\r\n
the source code of the demo\r\n
1. options in group ({{value1}})
\r\n
\r\n \r\n
2. options ({{value2}})
\r\n
\r\n \r\n
3. less options ({{value3}})
\r\n
\r\n \r\n
4. disabled ({{value4}})
\r\n
\r\n\r\n \r\n
5. hide search box ({{value5}})
\r\n
\r\n \r\n
6. placeholder ({{value6}})
\r\n
\r\n \r\n
7. open and search event ({{value7}})
\r\n
\r\n \r\n
9. multiple ({{value9}})
\r\n
\r\n \r\n
10. form binding ({{value10}})
\r\n
\r\n
11. material style ({{value11}})
\r\n
\r\n \r\n
12. boolean value ({{value12}})
\r\n
\r\n \r\n
13. FormControl
\r\n
\r\n
14. with label ({{value14}})
\r\n
\r\n Select a state\r\n \r\n
"
/***/ }),
@@ -1247,6 +1312,7 @@ var AppComponent = /** @class */ (function () {
this.data10 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__["data1"]));
this.data11 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__["data1"]));
this.data12 = _app_data__WEBPACK_IMPORTED_MODULE_2__["data12"];
+ this.data14 = _app_data__WEBPACK_IMPORTED_MODULE_2__["data2"];
this.minCountForSearch = Infinity;
this.value1 = 'CA';
this.value2 = 'CA';
@@ -1259,6 +1325,7 @@ var AppComponent = /** @class */ (function () {
this.value10 = 'CA';
this.value11 = 'CA';
this.value12 = true;
+ this.value14 = '';
this.fg = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({
state: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]()
});
@@ -1318,6 +1385,9 @@ var AppComponent = /** @class */ (function () {
AppComponent.prototype.update12 = function (value) {
this.value12 = value;
};
+ AppComponent.prototype.update14 = function (value) {
+ this.value14 = value;
+ };
AppComponent.prototype.resetForm = function () {
this.fg.reset(this.formData());
};
@@ -1618,7 +1688,7 @@ Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformB
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(/*! C:\Data\sources-svn\pitch\ng-select2\src\main.ts */"./src/main.ts");
+module.exports = __webpack_require__(/*! c:\Data\sources-svn\pitch\ng-select2\src\main.ts */"./src/main.ts");
/***/ })
diff --git a/dist/ng-select2/main.js.map b/dist/ng-select2/main.js.map
index f4c9010..5e986b9 100644
--- a/dist/ng-select2/main.js.map
+++ b/dist/ng-select2/main.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./projects/ng-select2-component/src/lib/select2-hint.component.ts","webpack:///./projects/ng-select2-component/src/lib/select2-utils.ts","webpack:///./projects/ng-select2-component/src/lib/select2.component.html","webpack:///./projects/ng-select2-component/src/lib/select2.component.scss","webpack:///./projects/ng-select2-component/src/lib/select2.component.ts","webpack:///./projects/ng-select2-component/src/lib/select2.module.ts","webpack:///./projects/ng-select2-component/src/public_api.ts","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.data.ts","webpack:///./src/app/app.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n@Directive({ selector: 'select2-hint' })\r\nexport class Select2Hint { }\r\n","export interface Select2Group {\r\n label: string;\r\n options: Select2Option[];\r\n classes?: string;\r\n}\r\n\r\nexport interface Select2Option {\r\n value: Select2Value;\r\n label: string;\r\n disabled?: boolean;\r\n component?: string | Function;\r\n classes?: string;\r\n}\r\n\r\nexport type Select2Value = string | number | boolean;\r\n\r\nexport type Select2UpdateValue = Select2Value | Select2Value[];\r\n\r\nexport type Select2Data = (Select2Group | Select2Option)[];\r\n\r\nexport const timeout = 200;\r\n\r\nconst unicodePatterns: { l: string, s: RegExp }[] = [\r\n { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi },\r\n { l: 'aa', s: /ꜳ/gi },\r\n { l: 'ae', s: /[æǽǣ]/gi },\r\n { l: 'ao', s: /ꜵ/gi },\r\n { l: 'au', s: /ꜷ/gi },\r\n { l: 'av', s: /[ꜹꜻ]/gi },\r\n { l: 'ay', s: /ꜽ/gi },\r\n { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi },\r\n { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi },\r\n { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi },\r\n { l: 'dz', s: /[dzdž]/gi },\r\n { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi },\r\n { l: 'f', s: /[ⓕfḟƒꝼ]/gi },\r\n { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi },\r\n { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi },\r\n { l: 'hv', s: /ƕ/gi },\r\n { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi },\r\n { l: 'j', s: /[ⓙjĵǰɉ]/gi },\r\n { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi },\r\n { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi },\r\n { l: 'lj', s: /lj/gi },\r\n { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi },\r\n { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi },\r\n { l: 'nj', s: /nj/gi },\r\n { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi },\r\n { l: 'oi', s: /ƣ/gi },\r\n { l: 'oe', s: /œ/gi },\r\n { l: 'oo', s: /ꝏ/gi },\r\n { l: 'ou', s: /ȣ/gi },\r\n { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi },\r\n { l: 'q', s: /[ⓠqɋꝗꝙ]/gi },\r\n { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi },\r\n { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi },\r\n { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi },\r\n { l: 'tz', s: /ꜩ/gi },\r\n { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi },\r\n { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi },\r\n { l: 'vy', s: /ꝡ/gi },\r\n { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi },\r\n { l: 'x', s: /[ⓧxẋẍ]/gi },\r\n { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi },\r\n { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi }\r\n];\r\n\r\nconst defaultMinCountForSearch = 6;\r\n\r\nexport class Select2Utils {\r\n\r\n private static getScrollUpIndex(data: Select2Data, value: Select2Value) {\r\n let index = 0;\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n index++;\r\n const valueIndex = options.findIndex(op => op.value === value);\r\n if (valueIndex !== -1) {\r\n return index + valueIndex;\r\n } else {\r\n index += options.length;\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return index;\r\n } else {\r\n index++;\r\n }\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined) {\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (option.value === value) {\r\n return option;\r\n }\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return groupOrOption as Select2Option;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static getOptionsByValue(\r\n data: Select2Data,\r\n value: Select2UpdateValue | null | undefined,\r\n multiple: boolean | null | undefined\r\n ) {\r\n if (multiple) {\r\n const values: Select2Value[] = Array.isArray(value) ? value : [];\r\n const result: Select2Option[] = [];\r\n for (const v of values) {\r\n const option = Select2Utils.getOptionByValue(data, v);\r\n if (option) {\r\n result.push(option);\r\n }\r\n }\r\n return result;\r\n }\r\n return Select2Utils.getOptionByValue(data, value as Select2Value | null | undefined);\r\n }\r\n\r\n static getFirstAvailableOption(data: Select2Data) {\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private static getOptionsCount(data: Select2Data) {\r\n let count = 0;\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n count += options.length;\r\n } else {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n\r\n static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined) {\r\n if (Select2Utils.isNullOrUndefined(value)) {\r\n return true;\r\n }\r\n for (const groupOrOption of filteredData) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (option.value === value) {\r\n return false;\r\n }\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // tslint:disable-next-line:cognitive-complexity\r\n static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\r\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\r\n for (let i = filteredData.length - 1; i >= 0; i--) {\r\n const groupOrOption = filteredData[i];\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (let j = options.length - 1; j >= 0; j--) {\r\n const option = options[j];\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n findIt = option.value === hoveringValue;\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n return findIt ? hoveringValue : null;\r\n }\r\n // tslint:disable-next-line:cognitive-complexity\r\n static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\r\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\r\n for (const groupOrOption of filteredData) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n } else {\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n } else {\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n }\r\n return findIt ? hoveringValue : null;\r\n }\r\n\r\n private static isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n }\r\n\r\n static getLastScrollTopIndex(\r\n hoveringValue: Select2Value | null | undefined,\r\n results: HTMLElement,\r\n filteredData: Select2Data,\r\n lastScrollTopIndex: number\r\n ) {\r\n if (Select2Utils.isNullOrUndefined(hoveringValue)) {\r\n results.scrollTop = 0;\r\n return 0;\r\n } else {\r\n const scrollTop = Select2Utils.getScrollUpIndex(filteredData, hoveringValue!);\r\n if (scrollTop - lastScrollTopIndex > 5) {\r\n lastScrollTopIndex += scrollTop - lastScrollTopIndex - 5;\r\n const item = results.querySelectorAll('li').item(scrollTop);\r\n if (item) {\r\n results.scrollTop = item.offsetTop - results.offsetHeight;\r\n }\r\n return lastScrollTopIndex;\r\n }\r\n if (lastScrollTopIndex - scrollTop > 0) {\r\n lastScrollTopIndex -= lastScrollTopIndex - scrollTop;\r\n const item = results.querySelectorAll('li').item(lastScrollTopIndex - 1);\r\n if (item) {\r\n results.scrollTop = item.offsetTop;\r\n }\r\n return lastScrollTopIndex;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n private static containSearchText(\r\n label: string,\r\n searchText: string | null,\r\n editPattern: ((str: string) => string) | undefined\r\n ): boolean {\r\n return searchText\r\n ? Select2Utils\r\n .formatSansUnicode(label)\r\n .match(new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i')) !== null\r\n : true;\r\n }\r\n\r\n private static protectPattern(str: string): string {\r\n return str.replace(new RegExp('[\\\\-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]', 'g'), '\\\\$&');\r\n }\r\n\r\n private static formatSansUnicode(str: string): string {\r\n for (const unicodePattern of unicodePatterns) {\r\n str = str.replace(unicodePattern.s, unicodePattern.l);\r\n }\r\n return str;\r\n }\r\n\r\n private static formatPattern(str: string, editPattern: ((str: string) => string) | undefined): string {\r\n str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str));\r\n\r\n if (editPattern && typeof editPattern === 'function') {\r\n str = editPattern(str);\r\n }\r\n return str;\r\n }\r\n\r\n static getFilteredData(data: Select2Data, searchText: string | null, editPattern?: (str: string) => string): Select2Data {\r\n if (searchText) {\r\n const result: Select2Data = [];\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) {\r\n const filteredOptions = options.filter(\r\n group => Select2Utils.containSearchText(group.label, searchText, editPattern)\r\n );\r\n result.push({\r\n label: groupOrOption.label,\r\n options: filteredOptions\r\n });\r\n }\r\n } else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) {\r\n result.push(groupOrOption);\r\n }\r\n }\r\n return result;\r\n } else {\r\n return data;\r\n }\r\n }\r\n\r\n static getOptionStyle(value: Select2Value, hoveringValue: Select2Value | null | undefined) {\r\n return value === hoveringValue\r\n ? 'select2-results__option select2-results__option--highlighted'\r\n : 'select2-results__option';\r\n }\r\n\r\n static getDropdownStyle(isOpen: boolean) {\r\n return isOpen\r\n ? 'select2-container select2-container--default select2-container-dropdown select2-container--open'\r\n : 'select2-container select2-container--default select2-container-dropdown';\r\n }\r\n\r\n static getContainerStyle(disabled: boolean | undefined, isOpen: boolean) {\r\n return `select2 select2-container select2-container--default ${disabled ? 'select2-container--disabled' : ''} `\r\n + `${isOpen ? 'select2-container--open' : ''} select2-container--below select2-container--focus`;\r\n }\r\n\r\n static getSelectionStyle(multiple: boolean | undefined) {\r\n return `select2-selection select2-selection--${multiple ? 'multiple' : 'single'}`;\r\n }\r\n\r\n\r\n static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number) {\r\n if (typeof minCountForSearch !== 'number') {\r\n minCountForSearch = defaultMinCountForSearch;\r\n }\r\n const optionCount = Select2Utils.getOptionsCount(data);\r\n return optionCount < minCountForSearch;\r\n }\r\n\r\n static getSearchStyle(isHidden: boolean) {\r\n return isHidden\r\n ? 'select2-search select2-search--dropdown select2-search--hide'\r\n : 'select2-search select2-search--dropdown';\r\n }\r\n\r\n static isSelected(\r\n options: Select2Option | Select2Option[] | null,\r\n option: Select2Option,\r\n multiple: boolean | null | undefined\r\n ) {\r\n if (multiple) {\r\n return options && (options as Select2Option[]).some(op => op.value === option.value) ? 'true' : 'false';\r\n } else {\r\n return options && option.value === (options as Select2Option).value ? 'true' : 'false';\r\n }\r\n }\r\n\r\n static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option) {\r\n for (let i = 0; i < (options as Select2Option[]).length; i++) {\r\n if ((options as Select2Option[])[i].value === option.value) {\r\n (options as Select2Option[]).splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{select2Option.label}}\\r\\n {{placeholder}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n 0\\\"\\r\\n class=\\\"select2-selection__placeholder\\\">{{placeholder}}\\r\\n - \\r\\n ×\\r\\n {{op.label}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n - \\r\\n {{groupOrOption.label}}\\r\\n
\\r\\n - {{option.label}}
\\r\\n
\\r\\n \\r\\n - \\r\\n {{groupOrOption.label}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \".select2-container {\\n box-sizing: border-box;\\n display: inline-block;\\n margin: 0;\\n position: relative;\\n vertical-align: middle;\\n width: 100%; }\\n .select2-container .select2-container-dropdown {\\n position: absolute; }\\n .select2-container .select2-selection--single {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n height: 28px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-container .select2-selection--single .select2-selection__rendered {\\n display: block;\\n padding-left: 8px;\\n padding-right: 20px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-selection--single .select2-selection__clear {\\n position: relative; }\\n .select2-container .select2-selection--multiple {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n min-height: 32px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-container .select2-selection--multiple .select2-selection__rendered {\\n display: inline-block;\\n overflow: hidden;\\n padding-left: 8px;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-search--inline {\\n float: left; }\\n .select2-container .select2-search--inline .select2-search__field {\\n box-sizing: border-box;\\n border: none;\\n font-size: 100%;\\n margin-top: 5px;\\n padding: 0; }\\n .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-dropdown {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n box-sizing: border-box;\\n display: block;\\n position: absolute;\\n left: -100000px;\\n width: 100%;\\n z-index: 1051; }\\n .select2-results {\\n display: block; }\\n .select2-results__options {\\n list-style: none;\\n margin: 0;\\n padding: 0; }\\n .select2-results__option {\\n padding: 6px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-results__option[aria-selected] {\\n cursor: pointer; }\\n .select2-container--open .select2-dropdown {\\n left: 0; }\\n .select2-container--open .select2-dropdown--above {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n .select2-container--open .select2-dropdown--below {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n .select2-search--dropdown {\\n display: block;\\n padding: 4px; }\\n .select2-search--dropdown .select2-search__field {\\n padding: 4px;\\n width: 100%;\\n box-sizing: border-box; }\\n .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-search--dropdown.select2-search--hide {\\n display: none; }\\n .select2-close-mask {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n display: block;\\n position: fixed;\\n left: 0;\\n top: 0;\\n min-height: 100%;\\n min-width: 100%;\\n height: auto;\\n width: auto;\\n opacity: 0;\\n z-index: 99;\\n background-color: #fff;\\n filter: alpha(opacity=0); }\\n .select2-hidden-accessible {\\n border: 0 !important;\\n clip: rect(0 0 0 0) !important;\\n height: 1px !important;\\n margin: -1px !important;\\n overflow: hidden !important;\\n padding: 0 !important;\\n position: absolute !important;\\n width: 1px !important; }\\n .select2-container--default .select2-selection--single {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px; }\\n .select2-container--default .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--default .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder__option {\\n display: none; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow {\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent;\\n border-style: solid;\\n border-width: 5px 4px 0;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n .select2-container--default.select2-container--disabled .select2-selection--single {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\\n display: none; }\\n .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888;\\n border-width: 0 4px 5px; }\\n .select2-container--default .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n box-sizing: border-box;\\n list-style: none;\\n margin: 0;\\n padding: 0 5px;\\n width: 100%; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\\n list-style: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\\n color: #999;\\n margin-top: 5px;\\n float: left; }\\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder__option {\\n display: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-top: 5px;\\n margin-right: 10px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\\n color: #999;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #333; }\\n .select2-container--default.select2-container--focused .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single,\\n.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n .select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection__choice__remove {\\n display: none; }\\n .select2-container--default.select2-container--open.select2-container--above .select2-selection--single,\\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n .select2-container--default.select2-container--open.select2-container--below .select2-selection--single,\\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n .select2-container--default .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa; }\\n .select2-container--default .select2-search--inline .select2-search__field {\\n background: transparent;\\n border: none;\\n outline: 0;\\n box-shadow: none;\\n -webkit-appearance: textfield; }\\n .select2-container--default .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n .select2-container--default .select2-results__option[role=group] {\\n padding: 0; }\\n .select2-container--default .select2-results__option[aria-disabled=true] {\\n color: #999; }\\n .select2-container--default .select2-results__option[aria-selected=true] {\\n background-color: #ddd; }\\n .select2-container--default .select2-results__option .select2-results__option {\\n padding-left: 1em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\\n padding-left: 0; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -1em;\\n padding-left: 2em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -2em;\\n padding-left: 3em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -3em;\\n padding-left: 4em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -4em;\\n padding-left: 5em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -5em;\\n padding-left: 6em; }\\n .select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: #5897fb;\\n color: white; }\\n .select2-container--default .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px;\\n color: gray; }\\n /* stylelint-disable-next-line selector-type-no-unknown */\\n :host.material {\\n display: inline-block;\\n width: 300px; }\\n :host.material > .select2-container {\\n padding-bottom: 1.29688em;\\n vertical-align: inherit; }\\n :host.material > .select2-container .selection {\\n padding: 0.4375em 0;\\n border-top: 0.84375em solid transparent;\\n display: inline-flex;\\n align-items: baseline;\\n width: 100%;\\n height: auto; }\\n :host.material .select2-container--default .select2-selection--single,\\n :host.material .select2-container--default .select2-selection--multiple {\\n width: 100%;\\n border: 0;\\n border-radius: 0;\\n height: 24px;\\n box-sizing: border-box; }\\n :host.material .select2-container--default .select2-selection--single::before,\\n :host.material .select2-container--default .select2-selection--multiple::before {\\n content: ' ';\\n display: block;\\n position: absolute;\\n bottom: 1.65em;\\n background-color: #ddd;\\n height: 1px;\\n width: 100%; }\\n :host.material .select2-container--default .select2-selection--single::after,\\n :host.material .select2-container--default .select2-selection--multiple::after {\\n content: ' ';\\n display: block;\\n position: absolute;\\n bottom: 1.63em;\\n background-color: #5a419e;\\n height: 2px;\\n width: 0%;\\n left: 50%;\\n transition: none; }\\n :host.material .select2-container--default .select2-selection--single .select2-selection__rendered,\\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n padding-left: 1px;\\n line-height: inherit; }\\n :host.material .select2-container--default .select2-selection--single .select2-selection__placeholder,\\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\\n display: block;\\n color: rgba(0, 0, 0, 0.38);\\n transition: -webkit-transform 0.3s;\\n transition: transform 0.3s;\\n transition: transform 0.3s, -webkit-transform 0.3s;\\n position: absolute;\\n -webkit-transform-origin: 0 21px;\\n transform-origin: 0 21px;\\n left: 0;\\n top: 20px; }\\n :host.material .select2-container--default .select2-container--open {\\n left: 0;\\n bottom: 1.6em; }\\n :host.material .select2-container--default .select2-selection__placeholder__option {\\n -webkit-transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\\n transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\\n width: 133.33333%; }\\n :host.material .select2-container--default .select2-selection__arrow {\\n top: 20px; }\\n :host.material .select2-container--default.select2-container--open .select2-selection--single::after,\\n :host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,\\n :host.material .select2-container--default .select2-focused .select2-selection--single::after,\\n :host.material .select2-container--default .select2-focused .select2-selection--multiple::after {\\n transition: width 0.3s cubic-bezier(0.12, 1, 0.77, 1), left 0.3s cubic-bezier(0.12, 1, 0.77, 1);\\n width: 100%;\\n left: 0%; }\\n :host.material .select2-container--default .select2-dropdown {\\n border-radius: 0;\\n border: 0;\\n box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5); }\\n :host.material .select2-container--default .select2-results__option[aria-selected=true],\\n :host.material .select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: rgba(0, 0, 0, 0.04);\\n color: #000; }\\n :host.material .select2-container--default .select2-results__option[aria-selected=true] {\\n color: #ff5722; }\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single,\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: transparent; }\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single::before,\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0);\\n background-size: 4px 1px;\\n background-repeat: repeat-x;\\n background-color: transparent;\\n background-position: 0 bottom; }\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after {\\n background-color: red; }\\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--single,\\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple {\\n border: 0; }\\n :host.material .select2-subscript-wrapper {\\n position: absolute;\\n top: calc(100% - 1.72917em);\\n font-size: 75%; }\\n /* stylelint-disable selector-type-no-unknown */\\n @supports (-moz-appearance: none) {\\n select2.material .select2-container--default .select2-selection--single,\\n select2.material .select2-container--default .select2-selection--multiple {\\n height: 26px; } }\\n @supports (-ms-scroll-limit: 0) {\\n select2.material .select2-container--default .select2-selection--single,\\n select2.material .select2-container--default .select2-selection--multiple {\\n height: 25px; } }\\n\"","import {\r\n Component, Input, Output, EventEmitter, ElementRef, ViewChild, Optional, Self, ChangeDetectorRef,\r\n Attribute, OnInit, OnDestroy, DoCheck, AfterViewInit, HostBinding\r\n} from '@angular/core';\r\nimport {\r\n FormGroupDirective, NgControl, NgForm, ControlValueAccessor\r\n} from '@angular/forms';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport {\r\n Select2Data, Select2Option, Select2Value, Select2Utils, Select2UpdateValue, timeout\r\n} from './select2-utils';\r\n\r\nlet nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'select2',\r\n templateUrl: './select2.component.html',\r\n styleUrls: ['./select2.component.scss']\r\n})\r\nexport class Select2 implements ControlValueAccessor, OnInit, OnDestroy, DoCheck, AfterViewInit {\r\n\r\n /** data of options & optiongrps */\r\n @Input() data!: Select2Data;\r\n /** minimal data of show the search field */\r\n @Input() minCountForSearch?: number;\r\n @Input() placeholder?: string;\r\n @Input() customSearchEnabled?: boolean;\r\n @Input() multiple?: boolean;\r\n\r\n /** use the material style */\r\n @Input() material?: '' | true;\r\n\r\n /** use it for change the pattern of the filter search */\r\n @Input() editPattern!: (str: string) => string;\r\n\r\n @Output() update = new EventEmitter();\r\n @Output() open = new EventEmitter();\r\n @Output() search = new EventEmitter();\r\n\r\n option: Select2Option | Select2Option[] | null = null;\r\n isOpen = false;\r\n searchStyle!: string;\r\n\r\n @ViewChild('selection') selection!: ElementRef;\r\n @ViewChild('results') private results!: ElementRef;\r\n @ViewChild('searchInput') private searchInput!: ElementRef;\r\n private hoveringValue: Select2Value | null | undefined = null;\r\n private innerSearchText = '';\r\n private lastScrollTopIndex = 0;\r\n private isSearchboxHidden!: boolean;\r\n private selectionElement!: HTMLElement;\r\n private searchInputElement!: HTMLElement;\r\n private resultsElement!: HTMLElement;\r\n\r\n // tslint:disable:member-ordering\r\n private _stateChanges = new Subject
();\r\n\r\n /** Whether the element is focused or not. */\r\n focused = false;\r\n\r\n /** View -> model callback called when select has been touched */\r\n private _onTouched = () => {\r\n // do nothing\r\n }\r\n\r\n /** View -> model callback called when value changes */\r\n private _onChange: (value: any) => void = () => {\r\n // do nothing\r\n }\r\n\r\n get select2Options() {\r\n return this.multiple ? this.option as Select2Option[] : null;\r\n }\r\n get select2Option() {\r\n return this.multiple ? null : this.option as Select2Option;\r\n }\r\n get searchText() {\r\n return this.innerSearchText;\r\n }\r\n set searchText(text: string) {\r\n if (this.customSearchEnabled) {\r\n this.search.emit(text);\r\n }\r\n this.innerSearchText = text;\r\n }\r\n\r\n get dropdownStyle() {\r\n return Select2Utils.getDropdownStyle(this.isOpen);\r\n }\r\n\r\n get filteredData(): Select2Data {\r\n const result = this.customSearchEnabled\r\n ? this.data\r\n : Select2Utils.getFilteredData(this.data, this.searchText, this.editPattern);\r\n\r\n if (Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) {\r\n this.hoveringValue = Select2Utils.getFirstAvailableOption(result);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n result,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n get containerStyle() {\r\n return Select2Utils.getContainerStyle(this.disabled, this.isOpen);\r\n }\r\n\r\n get selectionStyle() {\r\n return Select2Utils.getSelectionStyle(this.multiple);\r\n }\r\n\r\n /** Unique id of the element. */\r\n @Input()\r\n @HostBinding('id')\r\n get id() { return this._id; }\r\n set id(value: string) { this._id = value || this._uid; }\r\n\r\n /** Whether the element is required. */\r\n @Input()\r\n get required() { return this._required; }\r\n set required(value: any) { this._required = this._coerceBooleanProperty(value); }\r\n\r\n /** Whether the element is disabled. */\r\n @Input()\r\n get disabled() { return this._control ? this._control.disabled : this._disabled; }\r\n set disabled(value: any) { this._disabled = this._coerceBooleanProperty(value); }\r\n\r\n /** Whether the element is readonly. */\r\n @Input()\r\n get readonly() { return this._readonly; }\r\n set readonly(value: any) { this._readonly = this._coerceBooleanProperty(value); }\r\n\r\n /** The input element's value. */\r\n @Input()\r\n get value() { return this._value; }\r\n set value(value: Select2UpdateValue) {\r\n setTimeout(() => {\r\n this._value = value;\r\n this.writeValue(value);\r\n });\r\n }\r\n\r\n /** Tab index for the select2 element. */\r\n @Input()\r\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\r\n set tabIndex(value: number) {\r\n if (typeof value !== 'undefined') {\r\n this._tabIndex = value;\r\n }\r\n }\r\n\r\n @HostBinding('attr.aria-invalid')\r\n get ariaInvalid() {\r\n return this._isErrorState();\r\n }\r\n\r\n @HostBinding('class.material')\r\n get classMaterial() {\r\n return this.material === '' || this.material === true;\r\n }\r\n\r\n /** Tab index for the element. */\r\n private _tabIndex: number;\r\n\r\n private _disabled = false;\r\n private _required = false;\r\n private _readonly = false;\r\n private _clickDetection = false;\r\n private _clickDetectionFc: (e: MouseEvent) => void;\r\n private _id!: string;\r\n private _uid = `select2-${nextUniqueId++}`;\r\n private _value!: Select2UpdateValue;\r\n private _previousNativeValue: Select2UpdateValue = this._value;\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n @Optional() private _parentForm: NgForm,\r\n @Optional() private _parentFormGroup: FormGroupDirective,\r\n @Self() @Optional() public _control: NgControl,\r\n @Attribute('tabindex') tabIndex: string\r\n ) {\r\n this.id = this.id;\r\n this._tabIndex = parseInt(tabIndex, 10) || 0;\r\n\r\n if (this._control) {\r\n this._control.valueAccessor = this;\r\n }\r\n\r\n this._clickDetectionFc = this.clickDetection.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n const option = Select2Utils.getOptionsByValue(\r\n this.data,\r\n this._control ? this._control.value : this.value,\r\n this.multiple\r\n );\r\n if (option !== null) {\r\n this.option = option;\r\n }\r\n if (!Array.isArray(option)) {\r\n this.hoveringValue = this.value as string | undefined;\r\n }\r\n this.isSearchboxHidden = this.customSearchEnabled\r\n ? false\r\n : Select2Utils.isSearchboxHiddex(this.data, this.minCountForSearch);\r\n this.searchStyle = Select2Utils.getSearchStyle(this.isSearchboxHidden);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectionElement = this.selection.nativeElement as HTMLElement;\r\n this.searchInputElement = this.searchInput.nativeElement as HTMLElement;\r\n this.resultsElement = this.results.nativeElement as HTMLElement;\r\n }\r\n\r\n ngDoCheck() {\r\n this._dirtyCheckNativeValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n window.document.body.removeEventListener('click', this._clickDetectionFc);\r\n }\r\n\r\n getOptionStyle(option: Select2Option) {\r\n return Select2Utils.getOptionStyle(option.value, this.hoveringValue)\r\n + (option.classes ? ' ' + option.classes : '');\r\n }\r\n\r\n mouseenter(option: Select2Option) {\r\n if (!option.disabled) {\r\n this.hoveringValue = option.value;\r\n }\r\n }\r\n\r\n click(option: Select2Option) {\r\n if (!option.disabled) {\r\n this.select(option);\r\n }\r\n }\r\n\r\n toggleOpenAndClose() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.focused = true;\r\n this.isOpen = !this.isOpen;\r\n if (this.isOpen) {\r\n this.innerSearchText = '';\r\n this.focusSearchboxOrResultsElement();\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.data,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n this.open.emit();\r\n }\r\n\r\n if (this.isOpen && !this._clickDetection) {\r\n setTimeout(() => {\r\n window.document.body.addEventListener('click', this._clickDetectionFc, false);\r\n this._clickDetection = true;\r\n }, timeout);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n private clickDetection(e: MouseEvent) {\r\n if (!this.ifParentContainsClass(e.target as HTMLElement, 'selection')) {\r\n if (this.isOpen && !this.ifParentContainsClass(e.target as HTMLElement, 'select2-dropdown')) {\r\n this.toggleOpenAndClose();\r\n }\r\n if (!this.ifParentContainsId(e.target as HTMLElement, this._id)) {\r\n this.clickExit();\r\n }\r\n } else if (this.isOpen && !this.ifParentContainsId(e.target as HTMLElement, this._id)) {\r\n this.toggleOpenAndClose();\r\n this.clickExit();\r\n }\r\n }\r\n\r\n private clickExit() {\r\n this.focused = false;\r\n window.document.body.removeEventListener('click', this._clickDetectionFc);\r\n this._clickDetection = false;\r\n }\r\n\r\n private ifParentContainsClass(element: HTMLElement, cssClass: string): boolean {\r\n return this.getParentElementByClass(element, cssClass) !== null;\r\n }\r\n\r\n private ifParentContainsId(element: HTMLElement, id: string): boolean {\r\n return this.getParentElementById(element, id) !== null;\r\n }\r\n\r\n private getParentElementByClass(element: HTMLElement, cssClass: string): HTMLElement | null {\r\n if (this.containClasses(element, cssClass.trim().split(/\\s+/))) {\r\n return element;\r\n }\r\n return element.parentElement\r\n ? this.getParentElementByClass(element.parentElement, cssClass)\r\n : null;\r\n }\r\n\r\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\r\n if (element.id === id) {\r\n return element;\r\n }\r\n return element.parentElement\r\n ? this.getParentElementById(element.parentElement, id)\r\n : null;\r\n }\r\n\r\n private containClasses(element: HTMLElement, cssClasses: string[]): boolean {\r\n if (!element.classList) {\r\n return false;\r\n }\r\n for (const cssClass of cssClasses) {\r\n if (!element.classList.contains(cssClass)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n focusin() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.focused = true;\r\n }\r\n\r\n focusout() {\r\n if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) {\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n private moveUp() {\r\n this.hoveringValue = Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.filteredData,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n\r\n private moveDown() {\r\n this.hoveringValue = Select2Utils.getNextOption(this.filteredData, this.hoveringValue);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.filteredData,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n\r\n private selectByEnter() {\r\n if (this.hoveringValue) {\r\n const option = Select2Utils.getOptionByValue(this.data, this.hoveringValue);\r\n this.select(option);\r\n }\r\n }\r\n\r\n select(option: Select2Option | null) {\r\n let value: any;\r\n if (option !== null) {\r\n if (this.multiple) {\r\n const options = this.option as Select2Option[];\r\n const index = options.findIndex(op => op.value === option.value);\r\n if (index === -1) {\r\n options.push(option);\r\n } else {\r\n options.splice(index, 1);\r\n }\r\n value = (this.option as Select2Option[]).map(op => op.value);\r\n } else {\r\n this.option = option;\r\n this.isOpen = false;\r\n if (this.selectionElement) {\r\n this.selectionElement.focus();\r\n }\r\n value = this.option.value;\r\n }\r\n } else if (this._control) {\r\n this.option = null;\r\n }\r\n\r\n if (this._control) {\r\n\r\n this._onChange(value);\r\n }\r\n this.update.emit(value);\r\n }\r\n\r\n keyDown(e: KeyboardEvent) {\r\n if (e.keyCode === 40) {\r\n this.moveDown();\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n this.moveUp();\r\n e.preventDefault();\r\n } else if (e.keyCode === 13) {\r\n this.selectByEnter();\r\n e.preventDefault();\r\n } else if (e.keyCode === 9 && this.isOpen) {\r\n this.toggleOpenAndClose();\r\n this.focused = false;\r\n }\r\n }\r\n\r\n openKey(e: KeyboardEvent) {\r\n if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 13) {\r\n this.toggleOpenAndClose();\r\n e.preventDefault();\r\n } else if (e.keyCode === 9) {\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n trackBy(index: number, item: Select2Option): any {\r\n return item.value;\r\n }\r\n\r\n searchUpdate(e: Event) {\r\n this.searchText = (e.target as HTMLInputElement).value;\r\n }\r\n\r\n isSelected(option: Select2Option) {\r\n return Select2Utils.isSelected(this.option, option, this.multiple);\r\n }\r\n\r\n isDisabled(option: Select2Option) {\r\n return option.disabled ? 'true' : 'false';\r\n }\r\n\r\n removeSelection(e: MouseEvent, option: Select2Option) {\r\n Select2Utils.removeSelection(this.option, option);\r\n\r\n const value = (this.option as Select2Option[]).map(op => op.value);\r\n if (this._control) {\r\n this._onChange(value);\r\n }\r\n this.update.emit(value);\r\n\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (this.isOpen) {\r\n this.focusSearchboxOrResultsElement();\r\n }\r\n }\r\n\r\n /**\r\n * Sets the model value. Implemented as part of ControlValueAccessor.\r\n * @param value\r\n */\r\n writeValue(value: any) {\r\n this._setSelectionByValue(value);\r\n }\r\n\r\n /**\r\n * Saves a callback function to be invoked when the select's value\r\n * changes from user input. Part of the ControlValueAccessor interface\r\n * required to integrate with Angular's core forms API.\r\n *\r\n * @param fn Callback to be triggered when the value changes.\r\n */\r\n registerOnChange(fn: (value: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Saves a callback function to be invoked when the select is blurred\r\n * by the user. Part of the ControlValueAccessor interface required\r\n * to integrate with Angular's core forms API.\r\n *\r\n * @param fn Callback to be triggered when the component has been touched.\r\n */\r\n registerOnTouched(fn: () => {}): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n /**\r\n * Sets whether the component should be disabled.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param isDisabled\r\n */\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n _isErrorState(): boolean {\r\n const isInvalid = this._control && this._control.invalid;\r\n const isTouched = this._control && this._control.touched;\r\n const isSubmitted = (this._parentFormGroup && this._parentFormGroup.submitted) ||\r\n (this._parentForm && this._parentForm.submitted);\r\n\r\n return !!(isInvalid && (isTouched || isSubmitted));\r\n }\r\n\r\n /**\r\n * Sets the selected option based on a value. If no option can be\r\n * found with the designated value, the select trigger is cleared.\r\n */\r\n private _setSelectionByValue(value: any | any[]): void {\r\n if (this.option || (value !== undefined && value !== null)) {\r\n const isArray = Array.isArray(value);\r\n if (this.multiple && value && !isArray) {\r\n throw new Error('Non array value.');\r\n } else if (this.data) {\r\n if (this._control && this.multiple) {\r\n this.option = []; // if value is null, then empty option and return\r\n if (isArray) {\r\n // value is not null. Preselect value\r\n const selectedValues: any = Select2Utils.getOptionsByValue(this.data, value, this.multiple);\r\n selectedValues.map(\r\n item => this.select(item)\r\n );\r\n }\r\n } else {\r\n this.select(Select2Utils.getOptionByValue(this.data, value));\r\n }\r\n } else if (this._control) {\r\n this._control.viewToModelUpdate(value);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n private _dirtyCheckNativeValue() {\r\n const newValue = this.value;\r\n\r\n if (this._previousNativeValue !== newValue) {\r\n this._previousNativeValue = newValue;\r\n this._stateChanges.next();\r\n }\r\n }\r\n\r\n private _coerceBooleanProperty(value: any): boolean {\r\n return value != null && `${value}` !== 'false';\r\n }\r\n\r\n private focusSearchboxOrResultsElement() {\r\n if (!this.isSearchboxHidden) {\r\n if (this.searchInputElement) {\r\n this.searchInputElement.focus();\r\n }\r\n } else {\r\n if (this.resultsElement) {\r\n this.resultsElement.focus();\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Select2 } from './select2.component';\r\nimport { Select2Hint } from './select2-hint.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n declarations: [\r\n Select2Hint,\r\n Select2\r\n ],\r\n exports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n Select2Hint,\r\n Select2\r\n ]\r\n})\r\nexport class Select2Module { }\r\n","/*\r\n * Public API Surface of ng-select2-component\r\n */\r\n\r\nexport * from './lib/select2.component';\r\nexport * from './lib/select2-hint.component';\r\nexport * from './lib/select2-utils';\r\nexport * from './lib/select2.module';\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\"","module.exports = \"\\r\\n
the source code of the demo\\r\\n
1. options in group ({{value1}})
\\r\\n
\\r\\n \\r\\n
2. options ({{value2}})
\\r\\n
\\r\\n \\r\\n
3. less options ({{value3}})
\\r\\n
\\r\\n \\r\\n
4. disabled ({{value4}})
\\r\\n
\\r\\n\\r\\n \\r\\n
5. hide search box ({{value5}})
\\r\\n
\\r\\n \\r\\n
6. placeholder ({{value6}})
\\r\\n
\\r\\n \\r\\n
7. open and search event ({{value7}})
\\r\\n
\\r\\n \\r\\n
9. multiple ({{value9}})
\\r\\n
\\r\\n \\r\\n
10. form binding ({{value10}})
\\r\\n
\\r\\n
11. material style ({{value11}})
\\r\\n
\\r\\n \\r\\n
12. boolean value ({{value12}})
\\r\\n
\\r\\n \\r\\n
13. FormControl
\\r\\n
\\r\\n \\r\\n
\"","import { Component } from '@angular/core';\r\nimport { Validators, FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { Select2Option, Select2Data } from 'projects/ng-select2-component/src/lib/select2-utils';\r\n\r\nimport { data1, data2, data3, data5, data12 } from './app.data';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n data1 = data1;\r\n data2 = data2;\r\n data3 = data3;\r\n data4: Select2Data = JSON.parse(JSON.stringify(data3));\r\n data5 = data5;\r\n data6: Select2Data = JSON.parse(JSON.stringify(data3));\r\n data7: Select2Option[] = [];\r\n data9: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data10: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data11: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data12 = data12;\r\n\r\n minCountForSearch = Infinity;\r\n\r\n ctrlForm: FormGroup;\r\n\r\n value1 = 'CA';\r\n value2 = 'CA';\r\n value3 = 'foo';\r\n value4 = 'bar';\r\n value5 = 'foo3';\r\n value6 = '';\r\n value7 = '';\r\n value9: string[] = [];\r\n value10 = 'CA';\r\n value11 = 'CA';\r\n value12 = true;\r\n\r\n fg: FormGroup = new FormGroup({\r\n state: new FormControl()\r\n });\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.ctrlForm = this.fb.group({\r\n test10: new FormControl(null, Validators.required)\r\n });\r\n\r\n this.fg.patchValue(this.formData());\r\n }\r\n\r\n update1(value: string) {\r\n this.value1 = value;\r\n }\r\n\r\n update2(value: string) {\r\n this.value2 = value;\r\n }\r\n\r\n update3(value: string) {\r\n this.value3 = value;\r\n }\r\n\r\n update5(value: string) {\r\n this.value5 = value;\r\n }\r\n\r\n update6(value: string) {\r\n this.value6 = value;\r\n }\r\n\r\n open7() {\r\n this.data7 = JSON.parse(JSON.stringify(data2));\r\n }\r\n\r\n update7(value: string) {\r\n this.value7 = value;\r\n }\r\n\r\n search7(text: string) {\r\n this.data7 = text\r\n ? (JSON.parse(JSON.stringify(data2)) as Select2Option[])\r\n .filter(option => option.label.toLowerCase().indexOf(text.toLowerCase()) > -1)\r\n : JSON.parse(JSON.stringify(data2));\r\n }\r\n\r\n update9(value: string[]) {\r\n this.value9 = value;\r\n }\r\n\r\n reset9() {\r\n this.value9 = ['CA'];\r\n }\r\n\r\n reset10() {\r\n const test10 = this.ctrlForm.get('test10');\r\n if (test10) {\r\n test10.reset();\r\n }\r\n }\r\n\r\n change10() {\r\n const test10 = this.ctrlForm.get('test10');\r\n if (test10) {\r\n test10.setValue('UT');\r\n }\r\n }\r\n\r\n update11(value: string) {\r\n this.value11 = value;\r\n }\r\n\r\n update12(value: boolean) {\r\n this.value12 = value;\r\n }\r\n\r\n resetForm() {\r\n this.fg.reset(this.formData());\r\n }\r\n print() {\r\n console.log('FormControl', this.fg.value);\r\n }\r\n\r\n formData() {\r\n return {\r\n state: ['CA', 'NV']\r\n };\r\n }\r\n}\r\n","import { Select2Data } from 'projects/ng-select2-component/src/lib/select2-utils';\r\n\r\nexport const data1: Select2Data = [\r\n {\r\n label: 'Alaskan/Hawaiian Time Zone',\r\n options: [\r\n { value: 'AK', label: 'Alaska' },\r\n { value: 'HI', label: 'Hawaii', disabled: true }\r\n ]\r\n },\r\n {\r\n label: 'Pacific Time Zone',\r\n options: [\r\n { value: 'CA', label: 'California' },\r\n { value: 'NV', label: 'Nevada' },\r\n { value: 'OR', label: 'Oregon' },\r\n { value: 'WA', label: 'Washington' }\r\n ]\r\n },\r\n {\r\n label: 'Mountain Time Zone',\r\n options: [\r\n { value: 'AZ', label: 'Arizona' },\r\n { value: 'CO', label: 'Colorado' },\r\n { value: 'ID', label: 'Idaho' },\r\n { value: 'MT', label: 'Montana' },\r\n { value: 'NE', label: 'Nebraska' },\r\n { value: 'NM', label: 'New Mexico' },\r\n { value: 'ND', label: 'North Dakota' },\r\n { value: 'UT', label: 'Utah' },\r\n { value: 'WY', label: 'Wyoming' }\r\n ]\r\n },\r\n {\r\n label: 'Central Time Zone',\r\n options: [\r\n { value: 'AL', label: 'Alabama' },\r\n { value: 'AR', label: 'Arkansas' },\r\n { value: 'IL', label: 'Illinois' },\r\n { value: 'IA', label: 'Iowa' },\r\n { value: 'KS', label: 'Kansas' },\r\n { value: 'KY', label: 'Kentucky' },\r\n { value: 'LA', label: 'Louisiana' },\r\n { value: 'MN', label: 'Minnesota' },\r\n { value: 'MS', label: 'Mississippi' },\r\n { value: 'MO', label: 'Missouri' },\r\n { value: 'OK', label: 'Oklahoma' },\r\n { value: 'SD', label: 'South Dakota' },\r\n { value: 'TX', label: 'Texas' },\r\n { value: 'TN', label: 'Tennessee' },\r\n { value: 'WI', label: 'Wisconsin' }\r\n ]\r\n },\r\n {\r\n label: 'Eastern Time Zone',\r\n options: [\r\n { value: 'CT', label: 'Connecticut' },\r\n { value: 'DE', label: 'Delaware' },\r\n { value: 'FL', label: 'Florida' },\r\n { value: 'GA', label: 'Georgia' },\r\n { value: 'IN', label: 'Indiana' },\r\n { value: 'ME', label: 'Maine' },\r\n { value: 'MD', label: 'Maryland' },\r\n { value: 'MA', label: 'Massachusetts' },\r\n { value: 'MI', label: 'Michigan' },\r\n { value: 'NH', label: 'New Hampshire' },\r\n { value: 'NJ', label: 'New Jersey' },\r\n { value: 'NY', label: 'New York' },\r\n { value: 'NC', label: 'North Carolina' },\r\n { value: 'OH', label: 'Ohio' },\r\n { value: 'PA', label: 'Pennsylvania' },\r\n { value: 'RI', label: 'Rhode Island' },\r\n { value: 'SC', label: 'South Carolina' },\r\n { value: 'VT', label: 'Vermont' },\r\n { value: 'VA', label: 'Virginia' },\r\n { value: 'WV', label: 'West Virginia' }\r\n ]\r\n }\r\n];\r\n\r\nexport const data2: Select2Data = [\r\n { value: 'AK', label: 'Alaska' },\r\n { value: 'HI', label: 'Hawaii', disabled: true },\r\n { value: 'CA', label: 'California' },\r\n { value: 'NV', label: 'Nevada' },\r\n { value: 'OR', label: 'Oregon' },\r\n { value: 'WA', label: 'Washington' },\r\n { value: 'AZ', label: 'Arizona' },\r\n { value: 'CO', label: 'Colorado' },\r\n { value: 'ID', label: 'Idaho' },\r\n { value: 'MT', label: 'Montana' },\r\n { value: 'NE', label: 'Nebraska' },\r\n { value: 'NM', label: 'New Mexico' },\r\n { value: 'ND', label: 'North Dakota' },\r\n { value: 'UT', label: 'Utah' },\r\n { value: 'WY', label: 'Wyoming' },\r\n { value: 'AL', label: 'Alabama' },\r\n { value: 'AR', label: 'Arkansas' },\r\n { value: 'IL', label: 'Illinois' },\r\n { value: 'IA', label: 'Iowa' },\r\n { value: 'KS', label: 'Kansas' },\r\n { value: 'KY', label: 'Kentucky' },\r\n { value: 'LA', label: 'Louisiana' },\r\n { value: 'MN', label: 'Minnesota' },\r\n { value: 'MS', label: 'Mississippi' },\r\n { value: 'MO', label: 'Missouri' },\r\n { value: 'OK', label: 'Oklahoma' },\r\n { value: 'SD', label: 'South Dakota' },\r\n { value: 'TX', label: 'Texas' },\r\n { value: 'TN', label: 'Tennessee' },\r\n { value: 'WI', label: 'Wisconsin' },\r\n { value: 'CT', label: 'Connecticut' },\r\n { value: 'DE', label: 'Delaware' },\r\n { value: 'FL', label: 'Florida' },\r\n { value: 'GA', label: 'Georgia' },\r\n { value: 'IN', label: 'Indiana' },\r\n { value: 'ME', label: 'Maine' },\r\n { value: 'MD', label: 'Maryland' },\r\n { value: 'MA', label: 'Massachusetts' },\r\n { value: 'MI', label: 'Michigan' },\r\n { value: 'NH', label: 'New Hampshire' },\r\n { value: 'NJ', label: 'New Jersey' },\r\n { value: 'NY', label: 'New York' },\r\n { value: 'NC', label: 'North Carolina' },\r\n { value: 'OH', label: 'Ohio' },\r\n { value: 'PA', label: 'Pennsylvania' },\r\n { value: 'RI', label: 'Rhode Island' },\r\n { value: 'SC', label: 'South Carolina' },\r\n { value: 'VT', label: 'Vermont' },\r\n { value: 'VA', label: 'Virginia' },\r\n { value: 'WV', label: 'West Virginia' }\r\n];\r\n\r\nexport const data3: Select2Data = [\r\n { value: 'foo', label: 'foo' },\r\n { value: 'bar', label: 'bar' },\r\n { value: 'baz', label: 'baz' }\r\n];\r\n\r\nexport const data5: Select2Data = [\r\n { value: 'foo1', label: 'foo1' },\r\n { value: 'foo2', label: 'foo2' },\r\n { value: 'foo3', label: 'foo3' },\r\n { value: 'foo4', label: 'foo4' },\r\n { value: 'foo5', label: 'foo5' },\r\n { value: 'foo6', label: 'foo6' }\r\n];\r\n\r\nexport const data12: Select2Data = [\r\n { value: true, label: 'true' },\r\n { value: false, label: 'false' }\r\n];\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { Select2Module } from 'projects/ng-select2-component/src/public_api';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n Select2Module\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///./projects/ng-select2-component/src/lib/select2-hint.component.ts","webpack:///./projects/ng-select2-component/src/lib/select2-label.component.ts","webpack:///./projects/ng-select2-component/src/lib/select2-utils.ts","webpack:///./projects/ng-select2-component/src/lib/select2.component.html","webpack:///./projects/ng-select2-component/src/lib/select2.component.scss","webpack:///./projects/ng-select2-component/src/lib/select2.component.ts","webpack:///./projects/ng-select2-component/src/lib/select2.module.ts","webpack:///./projects/ng-select2-component/src/public_api.ts","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.data.ts","webpack:///./src/app/app.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n@Directive({ selector: 'select2-hint' })\r\nexport class Select2Hint { }\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({ selector: 'select2-label' })\r\nexport class Select2Label { }\r\n","export interface Select2Group {\r\n label: string;\r\n options: Select2Option[];\r\n classes?: string;\r\n}\r\n\r\nexport interface Select2Option {\r\n value: Select2Value;\r\n label: string;\r\n disabled?: boolean;\r\n component?: string | Function;\r\n classes?: string;\r\n}\r\n\r\nexport type Select2Value = string | number | boolean;\r\n\r\nexport type Select2UpdateValue = Select2Value | Select2Value[];\r\n\r\nexport type Select2Data = (Select2Group | Select2Option)[];\r\n\r\nexport const timeout = 200;\r\n\r\nconst unicodePatterns: { l: string, s: RegExp }[] = [\r\n { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi },\r\n { l: 'aa', s: /ꜳ/gi },\r\n { l: 'ae', s: /[æǽǣ]/gi },\r\n { l: 'ao', s: /ꜵ/gi },\r\n { l: 'au', s: /ꜷ/gi },\r\n { l: 'av', s: /[ꜹꜻ]/gi },\r\n { l: 'ay', s: /ꜽ/gi },\r\n { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi },\r\n { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi },\r\n { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi },\r\n { l: 'dz', s: /[dzdž]/gi },\r\n { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi },\r\n { l: 'f', s: /[ⓕfḟƒꝼ]/gi },\r\n { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi },\r\n { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi },\r\n { l: 'hv', s: /ƕ/gi },\r\n { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi },\r\n { l: 'j', s: /[ⓙjĵǰɉ]/gi },\r\n { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi },\r\n { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi },\r\n { l: 'lj', s: /lj/gi },\r\n { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi },\r\n { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi },\r\n { l: 'nj', s: /nj/gi },\r\n { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi },\r\n { l: 'oi', s: /ƣ/gi },\r\n { l: 'oe', s: /œ/gi },\r\n { l: 'oo', s: /ꝏ/gi },\r\n { l: 'ou', s: /ȣ/gi },\r\n { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi },\r\n { l: 'q', s: /[ⓠqɋꝗꝙ]/gi },\r\n { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi },\r\n { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi },\r\n { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi },\r\n { l: 'tz', s: /ꜩ/gi },\r\n { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi },\r\n { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi },\r\n { l: 'vy', s: /ꝡ/gi },\r\n { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi },\r\n { l: 'x', s: /[ⓧxẋẍ]/gi },\r\n { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi },\r\n { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi }\r\n];\r\n\r\nconst defaultMinCountForSearch = 6;\r\n\r\nexport class Select2Utils {\r\n\r\n private static getScrollUpIndex(data: Select2Data, value: Select2Value) {\r\n let index = 0;\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n index++;\r\n const valueIndex = options.findIndex(op => op.value === value);\r\n if (valueIndex !== -1) {\r\n return index + valueIndex;\r\n } else {\r\n index += options.length;\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return index;\r\n } else {\r\n index++;\r\n }\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined) {\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (option.value === value) {\r\n return option;\r\n }\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return groupOrOption as Select2Option;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static getOptionsByValue(\r\n data: Select2Data,\r\n value: Select2UpdateValue | null | undefined,\r\n multiple: boolean | null | undefined\r\n ) {\r\n if (multiple) {\r\n const values: Select2Value[] = Array.isArray(value) ? value : [];\r\n const result: Select2Option[] = [];\r\n for (const v of values) {\r\n const option = Select2Utils.getOptionByValue(data, v);\r\n if (option) {\r\n result.push(option);\r\n }\r\n }\r\n return result;\r\n }\r\n return Select2Utils.getOptionByValue(data, value as Select2Value | null | undefined);\r\n }\r\n\r\n static getFirstAvailableOption(data: Select2Data) {\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private static getOptionsCount(data: Select2Data) {\r\n let count = 0;\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n count += options.length;\r\n } else {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n\r\n static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined) {\r\n if (Select2Utils.isNullOrUndefined(value)) {\r\n return true;\r\n }\r\n for (const groupOrOption of filteredData) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (option.value === value) {\r\n return false;\r\n }\r\n }\r\n } else {\r\n if ((groupOrOption as Select2Option).value === value) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // tslint:disable-next-line:cognitive-complexity\r\n static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\r\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\r\n for (let i = filteredData.length - 1; i >= 0; i--) {\r\n const groupOrOption = filteredData[i];\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (let j = options.length - 1; j >= 0; j--) {\r\n const option = options[j];\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n findIt = option.value === hoveringValue;\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n }\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n return findIt ? hoveringValue : null;\r\n }\r\n // tslint:disable-next-line:cognitive-complexity\r\n static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\r\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\r\n for (const groupOrOption of filteredData) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n for (const option of options) {\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n } else {\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n } else {\r\n const option = groupOrOption as Select2Option;\r\n if (findIt) {\r\n if (!option.disabled) {\r\n return option.value;\r\n }\r\n } else {\r\n findIt = option.value === hoveringValue;\r\n }\r\n }\r\n }\r\n return findIt ? hoveringValue : null;\r\n }\r\n\r\n private static isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n }\r\n\r\n static getLastScrollTopIndex(\r\n hoveringValue: Select2Value | null | undefined,\r\n results: HTMLElement,\r\n filteredData: Select2Data,\r\n lastScrollTopIndex: number\r\n ) {\r\n if (Select2Utils.isNullOrUndefined(hoveringValue)) {\r\n results.scrollTop = 0;\r\n return 0;\r\n } else {\r\n const scrollTop = Select2Utils.getScrollUpIndex(filteredData, hoveringValue!);\r\n if (scrollTop - lastScrollTopIndex > 5) {\r\n lastScrollTopIndex += scrollTop - lastScrollTopIndex - 5;\r\n const item = results.querySelectorAll('li').item(scrollTop);\r\n if (item) {\r\n results.scrollTop = item.offsetTop - results.offsetHeight;\r\n }\r\n return lastScrollTopIndex;\r\n }\r\n if (lastScrollTopIndex - scrollTop > 0) {\r\n lastScrollTopIndex -= lastScrollTopIndex - scrollTop;\r\n const item = results.querySelectorAll('li').item(lastScrollTopIndex - 1);\r\n if (item) {\r\n results.scrollTop = item.offsetTop;\r\n }\r\n return lastScrollTopIndex;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n private static containSearchText(\r\n label: string,\r\n searchText: string | null,\r\n editPattern: ((str: string) => string) | undefined\r\n ): boolean {\r\n return searchText\r\n ? Select2Utils\r\n .formatSansUnicode(label)\r\n .match(new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i')) !== null\r\n : true;\r\n }\r\n\r\n private static protectPattern(str: string): string {\r\n return str.replace(new RegExp('[\\\\-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]', 'g'), '\\\\$&');\r\n }\r\n\r\n private static formatSansUnicode(str: string): string {\r\n for (const unicodePattern of unicodePatterns) {\r\n str = str.replace(unicodePattern.s, unicodePattern.l);\r\n }\r\n return str;\r\n }\r\n\r\n private static formatPattern(str: string, editPattern: ((str: string) => string) | undefined): string {\r\n str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str));\r\n\r\n if (editPattern && typeof editPattern === 'function') {\r\n str = editPattern(str);\r\n }\r\n return str;\r\n }\r\n\r\n static getFilteredData(data: Select2Data, searchText: string | null, editPattern?: (str: string) => string): Select2Data {\r\n if (searchText) {\r\n const result: Select2Data = [];\r\n for (const groupOrOption of data) {\r\n const options = (groupOrOption as Select2Group).options;\r\n if (options) {\r\n if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) {\r\n const filteredOptions = options.filter(\r\n group => Select2Utils.containSearchText(group.label, searchText, editPattern)\r\n );\r\n result.push({\r\n label: groupOrOption.label,\r\n options: filteredOptions\r\n });\r\n }\r\n } else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) {\r\n result.push(groupOrOption);\r\n }\r\n }\r\n return result;\r\n } else {\r\n return data;\r\n }\r\n }\r\n\r\n static getOptionStyle(value: Select2Value, hoveringValue: Select2Value | null | undefined) {\r\n return value === hoveringValue\r\n ? 'select2-results__option select2-results__option--highlighted'\r\n : 'select2-results__option';\r\n }\r\n\r\n static getDropdownStyle(isOpen: boolean) {\r\n return isOpen\r\n ? 'select2-container select2-container--default select2-container-dropdown select2-container--open'\r\n : 'select2-container select2-container--default select2-container-dropdown';\r\n }\r\n\r\n static getContainerStyle(disabled: boolean | undefined, isOpen: boolean) {\r\n return `select2 select2-container select2-container--default ${disabled ? 'select2-container--disabled' : ''} `\r\n + `${isOpen ? 'select2-container--open' : ''} select2-container--below select2-container--focus`;\r\n }\r\n\r\n static getSelectionStyle(multiple: boolean | undefined) {\r\n return `select2-selection select2-selection--${multiple ? 'multiple' : 'single'}`;\r\n }\r\n\r\n\r\n static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number) {\r\n if (typeof minCountForSearch !== 'number') {\r\n minCountForSearch = defaultMinCountForSearch;\r\n }\r\n const optionCount = Select2Utils.getOptionsCount(data);\r\n return optionCount < minCountForSearch;\r\n }\r\n\r\n static getSearchStyle(isHidden: boolean) {\r\n return isHidden\r\n ? 'select2-search select2-search--dropdown select2-search--hide'\r\n : 'select2-search select2-search--dropdown';\r\n }\r\n\r\n static isSelected(\r\n options: Select2Option | Select2Option[] | null,\r\n option: Select2Option,\r\n multiple: boolean | null | undefined\r\n ) {\r\n if (multiple) {\r\n return options && (options as Select2Option[]).some(op => op.value === option.value) ? 'true' : 'false';\r\n } else {\r\n return options && option.value === (options as Select2Option).value ? 'true' : 'false';\r\n }\r\n }\r\n\r\n static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option) {\r\n for (let i = 0; i < (options as Select2Option[]).length; i++) {\r\n if ((options as Select2Option[])[i].value === option.value) {\r\n (options as Select2Option[]).splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{select2Option.label}}\\r\\n {{placeholder}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n 0\\\"\\r\\n class=\\\"select2-selection__placeholder\\\">{{placeholder}}\\r\\n - \\r\\n ×\\r\\n {{op.label}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n - \\r\\n {{groupOrOption.label}}\\r\\n
\\r\\n - {{option.label}}
\\r\\n
\\r\\n \\r\\n - \\r\\n {{groupOrOption.label}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \".select2-container {\\n box-sizing: border-box;\\n display: inline-block;\\n margin: 0;\\n position: relative;\\n vertical-align: middle;\\n width: 100%; }\\n .select2-container .select2-container-dropdown {\\n position: absolute;\\n width: 0px; }\\n .select2-container .select2-selection--single {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n height: 28px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-container .select2-selection--single .select2-selection__rendered {\\n display: block;\\n padding-left: 8px;\\n padding-right: 20px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-selection--single .select2-selection__clear {\\n position: relative; }\\n .select2-container .select2-selection--multiple {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n min-height: 32px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-container .select2-selection--multiple .select2-selection__rendered {\\n display: inline-block;\\n overflow: hidden;\\n padding-left: 8px;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-search--inline {\\n float: left; }\\n .select2-container .select2-search--inline .select2-search__field {\\n box-sizing: border-box;\\n border: none;\\n font-size: 100%;\\n margin-top: 5px;\\n padding: 0; }\\n .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-dropdown {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n box-sizing: border-box;\\n display: block;\\n position: absolute;\\n left: -100000px;\\n width: 100%;\\n z-index: 1051; }\\n .select2-results {\\n display: block; }\\n .select2-results__options {\\n list-style: none;\\n margin: 0;\\n padding: 0; }\\n .select2-results__option {\\n padding: 6px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .select2-results__option[aria-selected] {\\n cursor: pointer; }\\n .select2-container.select2-container-dropdown.select2-container--open {\\n width: 100%; }\\n .select2-container--open .select2-dropdown {\\n left: 0; }\\n .select2-container--open .select2-dropdown--above {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n .select2-container--open .select2-dropdown--below {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n .select2-search--dropdown {\\n display: block;\\n padding: 4px; }\\n .select2-search--dropdown .select2-search__field {\\n padding: 4px;\\n width: 100%;\\n box-sizing: border-box; }\\n .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-search--dropdown.select2-search--hide {\\n display: none; }\\n .select2-close-mask {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n display: block;\\n position: fixed;\\n left: 0;\\n top: 0;\\n min-height: 100%;\\n min-width: 100%;\\n height: auto;\\n width: auto;\\n opacity: 0;\\n z-index: 99;\\n background-color: #fff;\\n filter: alpha(opacity=0); }\\n .select2-hidden-accessible {\\n border: 0 !important;\\n clip: rect(0 0 0 0) !important;\\n height: 1px !important;\\n margin: -1px !important;\\n overflow: hidden !important;\\n padding: 0 !important;\\n position: absolute !important;\\n width: 1px !important; }\\n .select2-container--default .select2-selection--single {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px; }\\n .select2-container--default .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--default .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder__option {\\n display: none; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow {\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent;\\n border-style: solid;\\n border-width: 5px 4px 0;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n .select2-container--default.select2-container--disabled .select2-selection--single {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\\n display: none; }\\n .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888;\\n border-width: 0 4px 5px; }\\n .select2-container--default .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n box-sizing: border-box;\\n list-style: none;\\n margin: 0;\\n padding: 0 5px;\\n width: 100%; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\\n list-style: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\\n color: #999;\\n margin-top: 5px;\\n float: left; }\\n .select2-container--default .select2-selection--multiple .select2-selection__placeholder__option {\\n display: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-top: 5px;\\n margin-right: 10px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\\n color: #999;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #333; }\\n .select2-container--default.select2-container--focused .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single,\\n.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n .select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection__choice__remove {\\n display: none; }\\n .select2-container--default.select2-container--open.select2-container--above .select2-selection--single,\\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n .select2-container--default.select2-container--open.select2-container--below .select2-selection--single,\\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n .select2-container--default .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa; }\\n .select2-container--default .select2-search--inline .select2-search__field {\\n background: transparent;\\n border: none;\\n outline: 0;\\n box-shadow: none;\\n -webkit-appearance: textfield; }\\n .select2-container--default .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n .select2-container--default .select2-results__option[role=group] {\\n padding: 0; }\\n .select2-container--default .select2-results__option[aria-disabled=true] {\\n color: #999; }\\n .select2-container--default .select2-results__option[aria-selected=true] {\\n background-color: #ddd; }\\n .select2-container--default .select2-results__option .select2-results__option {\\n padding-left: 1em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\\n padding-left: 0; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -1em;\\n padding-left: 2em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -2em;\\n padding-left: 3em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -3em;\\n padding-left: 4em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -4em;\\n padding-left: 5em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -5em;\\n padding-left: 6em; }\\n .select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: #5897fb;\\n color: white; }\\n .select2-container--default .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px;\\n color: gray; }\\n /* stylelint-disable-next-line selector-type-no-unknown */\\n :host.material {\\n display: inline-block;\\n width: 300px; }\\n :host.material > .select2-container {\\n padding-bottom: 1.29688em;\\n vertical-align: inherit; }\\n :host.material > .select2-container .selection {\\n padding: 0.4375em 0;\\n border-top: 0.84375em solid transparent;\\n display: inline-flex;\\n align-items: baseline;\\n width: 100%;\\n height: auto; }\\n :host.material .select2-container--default .select2-selection--single,\\n :host.material .select2-container--default .select2-selection--multiple {\\n width: 100%;\\n border: 0;\\n border-radius: 0;\\n height: 24px;\\n box-sizing: border-box; }\\n :host.material .select2-container--default .select2-selection--single::before,\\n :host.material .select2-container--default .select2-selection--multiple::before {\\n content: ' ';\\n display: block;\\n position: absolute;\\n bottom: 1.65em;\\n background-color: #ddd;\\n height: 1px;\\n width: 100%; }\\n :host.material .select2-container--default .select2-selection--single::after,\\n :host.material .select2-container--default .select2-selection--multiple::after {\\n content: ' ';\\n display: block;\\n position: absolute;\\n bottom: 1.63em;\\n background-color: #5a419e;\\n height: 2px;\\n width: 0%;\\n left: 50%;\\n transition: none; }\\n :host.material .select2-container--default .select2-selection--single .select2-selection__rendered,\\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n padding-left: 1px;\\n line-height: inherit; }\\n :host.material .select2-container--default .select2-selection--single .select2-selection__placeholder,\\n :host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\\n display: block;\\n color: rgba(0, 0, 0, 0.38);\\n transition: -webkit-transform 0.3s;\\n transition: transform 0.3s;\\n transition: transform 0.3s, -webkit-transform 0.3s;\\n position: absolute;\\n -webkit-transform-origin: 0 21px;\\n transform-origin: 0 21px;\\n left: 0;\\n top: 20px; }\\n :host.material .select2-container--default .select2-container--open {\\n left: 0;\\n bottom: 1.6em; }\\n :host.material .select2-container--default .select2-selection__placeholder__option {\\n -webkit-transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\\n transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\\n width: 133.33333%; }\\n :host.material .select2-container--default .select2-selection__arrow {\\n top: 20px; }\\n :host.material .select2-container--default.select2-container--open .select2-selection--single::after,\\n :host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,\\n :host.material .select2-container--default .select2-focused .select2-selection--single::after,\\n :host.material .select2-container--default .select2-focused .select2-selection--multiple::after {\\n transition: width 0.3s cubic-bezier(0.12, 1, 0.77, 1), left 0.3s cubic-bezier(0.12, 1, 0.77, 1);\\n width: 100%;\\n left: 0%; }\\n :host.material .select2-container--default .select2-dropdown {\\n border-radius: 0;\\n border: 0;\\n box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5); }\\n :host.material .select2-container--default .select2-results__option[aria-selected=true],\\n :host.material .select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: rgba(0, 0, 0, 0.04);\\n color: #000; }\\n :host.material .select2-container--default .select2-results__option[aria-selected=true] {\\n color: #ff5722; }\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single,\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: transparent; }\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--single::before,\\n :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0);\\n background-size: 4px 1px;\\n background-repeat: repeat-x;\\n background-color: transparent;\\n background-position: 0 bottom; }\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,\\n :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after {\\n background-color: red; }\\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--single,\\n :host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple {\\n border: 0; }\\n :host.material .select2-subscript-wrapper {\\n position: absolute;\\n top: calc(100% - 1.72917em);\\n font-size: 75%; }\\n /* stylelint-disable selector-type-no-unknown */\\n @supports (-moz-appearance: none) {\\n select2.material .select2-container--default .select2-selection--single,\\n select2.material .select2-container--default .select2-selection--multiple {\\n height: 26px; } }\\n @supports (-ms-scroll-limit: 0) {\\n select2.material .select2-container--default .select2-selection--single,\\n select2.material .select2-container--default .select2-selection--multiple {\\n height: 25px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3RzL25nLXNlbGVjdDItY29tcG9uZW50L3NyYy9saWIvYzpcXERhdGFcXHNvdXJjZXMtc3ZuXFxwaXRjaFxcbmctc2VsZWN0Mi9wcm9qZWN0c1xcbmctc2VsZWN0Mi1jb21wb25lbnRcXHNyY1xcbGliXFxzZWxlY3QyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQixVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0QixZQUFXLEVBMkRkO0VBakVEO0lBU1EsbUJBQWtCO0lBQ2xCLFdBQVUsRUFDYjtFQVhMO0lBY1EsdUJBQXNCO0lBQ3RCLGdCQUFlO0lBQ2YsZUFBYztJQUNkLGFBQVk7SUFDWiwwQkFBaUI7T0FBakIsdUJBQWlCO1FBQWpCLHNCQUFpQjtZQUFqQixrQkFBaUIsRUFjcEI7RUFoQ0w7TUFxQlksZUFBYztNQUNkLGtCQUFpQjtNQUNqQixvQkFBbUI7TUFDbkIsaUJBQWdCO01BQ2hCLHdCQUF1QjtNQUN2QixvQkFBbUIsRUFDdEI7RUEzQlQ7TUE4QlksbUJBQWtCLEVBQ3JCO0VBL0JUO0lBbUNRLHVCQUFzQjtJQUN0QixnQkFBZTtJQUNmLGVBQWM7SUFDZCxpQkFBZ0I7SUFDaEIsMEJBQWlCO09BQWpCLHVCQUFpQjtRQUFqQixzQkFBaUI7WUFBakIsa0JBQWlCLEVBU3BCO0VBaERMO01BMENZLHNCQUFxQjtNQUNyQixpQkFBZ0I7TUFDaEIsa0JBQWlCO01BQ2pCLHdCQUF1QjtNQUN2QixvQkFBbUIsRUFDdEI7RUEvQ1Q7SUFtRFEsWUFBVyxFQWFkO0VBaEVMO01Bc0RZLHVCQUFzQjtNQUN0QixhQUFZO01BQ1osZ0JBQWU7TUFDZixnQkFBZTtNQUNmLFdBQVUsRUFLYjtFQS9EVDtRQTZEZ0IseUJBQXdCLEVBQzNCO0VBS2I7RUFDSSx3QkFBdUI7RUFDdkIsdUJBQXNCO0VBQ3RCLG1CQUFrQjtFQUNsQix1QkFBc0I7RUFDdEIsZUFBYztF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SUFFSSxhQUFZLEVBQ2YsRUFBQSIsImZpbGUiOiJwcm9qZWN0cy9uZy1zZWxlY3QyLWNvbXBvbmVudC9zcmMvbGliL3NlbGVjdDIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VsZWN0Mi1jb250YWluZXIge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuc2VsZWN0Mi1jb250YWluZXItZHJvcGRvd24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcclxuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0xMDAwMDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogMTA1MTtcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0cyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcclxuICAgIHBhZGRpbmc6IDZweDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuICAgICZbYXJpYS1zZWxlY3RlZF0ge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRyb3Bkb3duLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcclxuICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiA0cHg7XHJcblxyXG4gICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1zZWFyY2gtLWhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNsb3NlLW1hc2sge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuXHJcbiAgICAvLyBzdHlsZXMgcmVxdWlyZWQgZm9yIElFIHRvIHdvcmtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5ID0gMCk7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcclxuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XHJcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNDQ0O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXIge1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjZweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDFweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcblxyXG4gICAgICAgICAgICBiIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzg4OCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA0cHggMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICBiIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4ODg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDRweCA1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzZWQge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDtcclxuICAgICAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLnNlbGVjdDItY29udGFpbmVyLS1vcGVuKSAuc2VsZWN0Mi1mb2N1c2VkIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCBibGFjayAxcHg7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWJlbG93IHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xyXG4gICAgICAgIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzID4gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gICAgICAgICZbcm9sZT1ncm91cF0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPXRydWVdIHtcclxuICAgICAgICAgICAgY29sb3I6ICM5OTk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19ncm91cCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFlbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMmVtO1xyXG5cclxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yZW07XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtM2VtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTRlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNWVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZFthcmlhLXNlbGVjdGVkXSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU4OTdmYjtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fZ3JvdXAge1xyXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nOiA2cHg7XHJcbiAgICAgICAgY29sb3I6IGdyYXk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1hdGVyaWFsIHN0eWxlXHJcbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci10eXBlLW5vLXVua25vd24gKi9cclxuOmhvc3QubWF0ZXJpYWwge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG5cclxuICAgICYgPiAuc2VsZWN0Mi1jb250YWluZXIge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI5Njg4ZW07XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XHJcblxyXG4gICAgICAgIC5zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnICc7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMS42NWVtO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAxLjYzZW07XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE0MTllO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAyMXB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHRvcDogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgYm90dG9tOiAxLjZlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXJfX29wdGlvbiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTMzLjMzMzMzJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4gICAgICAgICAgICB0b3A6IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLFxyXG4gICAgICAgIC5zZWxlY3QyLWZvY3VzZWQge1xyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTo6YWZ0ZXIsXHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGU6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTIsIDEsIDAuNzcsIDEpLCBsZWZ0IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTIsIDEsIDAuNzcsIDEpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSxcclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRdIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmY1NzIyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjI2KSAwLCByZ2JhKDAsIDAsIDAsIDAuMjYpIDMzJSwgdHJhbnNwYXJlbnQgMCk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgYm90dG9tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubmctaW52YWxpZC5uZy10b3VjaGVkIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgICYubmctaW52YWxpZC5uZy10b3VjaGVkIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bm90KC5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbikgLnNlbGVjdDItZm9jdXNlZCB7XHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc3Vic2NyaXB0LXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEuNzI5MTdlbSk7XHJcbiAgICAgICAgZm9udC1zaXplOiA3NSU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIG1hdGVyaWFsIGZpeCAoZmlyZWZveClcclxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duICovXHJcbkBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOiBub25lKSB7XHJcbiAgICBzZWxlY3QyLm1hdGVyaWFsIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgIGhlaWdodDogMjZweDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gbWF0ZXJpYWwgZml4IChtcyBlZGdlKVxyXG5cclxuQHN1cHBvcnRzICgtbXMtc2Nyb2xsLWxpbWl0OiAwKSB7XHJcbiAgICBzZWxlY3QyLm1hdGVyaWFsIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcclxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgICAgIGhlaWdodDogMjVweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","import {\r\n Component, Input, Output, EventEmitter, ElementRef, ViewChild, Optional, Self, ChangeDetectorRef,\r\n Attribute, OnInit, OnDestroy, DoCheck, AfterViewInit, HostBinding\r\n} from '@angular/core';\r\nimport {\r\n FormGroupDirective, NgControl, NgForm, ControlValueAccessor\r\n} from '@angular/forms';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport {\r\n Select2Data, Select2Option, Select2Value, Select2Utils, Select2UpdateValue, timeout\r\n} from './select2-utils';\r\n\r\nlet nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'select2',\r\n templateUrl: './select2.component.html',\r\n styleUrls: ['./select2.component.scss']\r\n})\r\nexport class Select2 implements ControlValueAccessor, OnInit, OnDestroy, DoCheck, AfterViewInit {\r\n\r\n /** data of options & optiongrps */\r\n @Input() data!: Select2Data;\r\n /** minimal data of show the search field */\r\n @Input() minCountForSearch?: number;\r\n @Input() placeholder?: string;\r\n @Input() customSearchEnabled?: boolean;\r\n @Input() multiple?: boolean;\r\n\r\n /** use the material style */\r\n @Input() material?: '' | true;\r\n\r\n /** use it for change the pattern of the filter search */\r\n @Input() editPattern!: (str: string) => string;\r\n\r\n @Output() update = new EventEmitter();\r\n @Output() open = new EventEmitter();\r\n @Output() search = new EventEmitter();\r\n\r\n option: Select2Option | Select2Option[] | null = null;\r\n isOpen = false;\r\n searchStyle!: string;\r\n\r\n @ViewChild('selection') selection!: ElementRef;\r\n @ViewChild('results') private results!: ElementRef;\r\n @ViewChild('searchInput') private searchInput!: ElementRef;\r\n private hoveringValue: Select2Value | null | undefined = null;\r\n private innerSearchText = '';\r\n private lastScrollTopIndex = 0;\r\n private isSearchboxHidden!: boolean;\r\n private selectionElement!: HTMLElement;\r\n private searchInputElement!: HTMLElement;\r\n private resultsElement!: HTMLElement;\r\n\r\n // tslint:disable:member-ordering\r\n private _stateChanges = new Subject();\r\n\r\n /** Whether the element is focused or not. */\r\n focused = false;\r\n\r\n /** View -> model callback called when select has been touched */\r\n private _onTouched = () => {\r\n // do nothing\r\n }\r\n\r\n /** View -> model callback called when value changes */\r\n private _onChange: (value: any) => void = () => {\r\n // do nothing\r\n }\r\n\r\n get select2Options() {\r\n return this.multiple ? this.option as Select2Option[] : null;\r\n }\r\n get select2Option() {\r\n return this.multiple ? null : this.option as Select2Option;\r\n }\r\n get searchText() {\r\n return this.innerSearchText;\r\n }\r\n set searchText(text: string) {\r\n if (this.customSearchEnabled) {\r\n this.search.emit(text);\r\n }\r\n this.innerSearchText = text;\r\n }\r\n\r\n get dropdownStyle() {\r\n return Select2Utils.getDropdownStyle(this.isOpen);\r\n }\r\n\r\n get filteredData(): Select2Data {\r\n const result = this.customSearchEnabled\r\n ? this.data\r\n : Select2Utils.getFilteredData(this.data, this.searchText, this.editPattern);\r\n\r\n if (Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) {\r\n this.hoveringValue = Select2Utils.getFirstAvailableOption(result);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n result,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n get containerStyle() {\r\n return Select2Utils.getContainerStyle(this.disabled, this.isOpen);\r\n }\r\n\r\n get selectionStyle() {\r\n return Select2Utils.getSelectionStyle(this.multiple);\r\n }\r\n\r\n /** Unique id of the element. */\r\n @Input()\r\n @HostBinding('id')\r\n get id() { return this._id; }\r\n set id(value: string) { this._id = value || this._uid; }\r\n\r\n /** Whether the element is required. */\r\n @Input()\r\n get required() { return this._required; }\r\n set required(value: any) { this._required = this._coerceBooleanProperty(value); }\r\n\r\n /** Whether the element is disabled. */\r\n @Input()\r\n get disabled() { return this._control ? this._control.disabled : this._disabled; }\r\n set disabled(value: any) { this._disabled = this._coerceBooleanProperty(value); }\r\n\r\n /** Whether the element is readonly. */\r\n @Input()\r\n get readonly() { return this._readonly; }\r\n set readonly(value: any) { this._readonly = this._coerceBooleanProperty(value); }\r\n\r\n /** The input element's value. */\r\n @Input()\r\n get value() { return this._value; }\r\n set value(value: Select2UpdateValue) {\r\n setTimeout(() => {\r\n this._value = value;\r\n this.writeValue(value);\r\n });\r\n }\r\n\r\n /** Tab index for the select2 element. */\r\n @Input()\r\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\r\n set tabIndex(value: number) {\r\n if (typeof value !== 'undefined') {\r\n this._tabIndex = value;\r\n }\r\n }\r\n\r\n @HostBinding('attr.aria-invalid')\r\n get ariaInvalid() {\r\n return this._isErrorState();\r\n }\r\n\r\n @HostBinding('class.material')\r\n get classMaterial() {\r\n return this.material === '' || this.material === true;\r\n }\r\n\r\n /** Tab index for the element. */\r\n private _tabIndex: number;\r\n\r\n private _disabled = false;\r\n private _required = false;\r\n private _readonly = false;\r\n private _clickDetection = false;\r\n private _clickDetectionFc: (e: MouseEvent) => void;\r\n private _id!: string;\r\n private _uid = `select2-${nextUniqueId++}`;\r\n private _value!: Select2UpdateValue;\r\n private _previousNativeValue: Select2UpdateValue = this._value;\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n @Optional() private _parentForm: NgForm,\r\n @Optional() private _parentFormGroup: FormGroupDirective,\r\n @Self() @Optional() public _control: NgControl,\r\n @Attribute('tabindex') tabIndex: string\r\n ) {\r\n this.id = this.id;\r\n this._tabIndex = parseInt(tabIndex, 10) || 0;\r\n\r\n if (this._control) {\r\n this._control.valueAccessor = this;\r\n }\r\n\r\n this._clickDetectionFc = this.clickDetection.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n const option = Select2Utils.getOptionsByValue(\r\n this.data,\r\n this._control ? this._control.value : this.value,\r\n this.multiple\r\n );\r\n if (option !== null) {\r\n this.option = option;\r\n }\r\n if (!Array.isArray(option)) {\r\n this.hoveringValue = this.value as string | undefined;\r\n }\r\n this.isSearchboxHidden = this.customSearchEnabled\r\n ? false\r\n : Select2Utils.isSearchboxHiddex(this.data, this.minCountForSearch);\r\n this.searchStyle = Select2Utils.getSearchStyle(this.isSearchboxHidden);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectionElement = this.selection.nativeElement as HTMLElement;\r\n this.searchInputElement = this.searchInput.nativeElement as HTMLElement;\r\n this.resultsElement = this.results.nativeElement as HTMLElement;\r\n }\r\n\r\n ngDoCheck() {\r\n this._dirtyCheckNativeValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n window.document.body.removeEventListener('click', this._clickDetectionFc);\r\n }\r\n\r\n getOptionStyle(option: Select2Option) {\r\n return Select2Utils.getOptionStyle(option.value, this.hoveringValue)\r\n + (option.classes ? ' ' + option.classes : '');\r\n }\r\n\r\n mouseenter(option: Select2Option) {\r\n if (!option.disabled) {\r\n this.hoveringValue = option.value;\r\n }\r\n }\r\n\r\n click(option: Select2Option) {\r\n if (!option.disabled) {\r\n this.select(option);\r\n }\r\n }\r\n\r\n toggleOpenAndClose() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.focused = true;\r\n this.isOpen = !this.isOpen;\r\n if (this.isOpen) {\r\n this.innerSearchText = '';\r\n this.focusSearchboxOrResultsElement();\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.data,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n this.open.emit();\r\n }\r\n\r\n if (this.isOpen && !this._clickDetection) {\r\n setTimeout(() => {\r\n window.document.body.addEventListener('click', this._clickDetectionFc, false);\r\n this._clickDetection = true;\r\n }, timeout);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n private clickDetection(e: MouseEvent) {\r\n if (!this.ifParentContainsClass(e.target as HTMLElement, 'selection')) {\r\n if (this.isOpen && !this.ifParentContainsClass(e.target as HTMLElement, 'select2-dropdown')) {\r\n this.toggleOpenAndClose();\r\n }\r\n if (!this.ifParentContainsId(e.target as HTMLElement, this._id)) {\r\n this.clickExit();\r\n }\r\n } else if (this.isOpen && !this.ifParentContainsId(e.target as HTMLElement, this._id)) {\r\n this.toggleOpenAndClose();\r\n this.clickExit();\r\n }\r\n }\r\n\r\n private clickExit() {\r\n this.focused = false;\r\n window.document.body.removeEventListener('click', this._clickDetectionFc);\r\n this._clickDetection = false;\r\n }\r\n\r\n private ifParentContainsClass(element: HTMLElement, cssClass: string): boolean {\r\n return this.getParentElementByClass(element, cssClass) !== null;\r\n }\r\n\r\n private ifParentContainsId(element: HTMLElement, id: string): boolean {\r\n return this.getParentElementById(element, id) !== null;\r\n }\r\n\r\n private getParentElementByClass(element: HTMLElement, cssClass: string): HTMLElement | null {\r\n if (this.containClasses(element, cssClass.trim().split(/\\s+/))) {\r\n return element;\r\n }\r\n return element.parentElement\r\n ? this.getParentElementByClass(element.parentElement, cssClass)\r\n : null;\r\n }\r\n\r\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\r\n if (element.id === id) {\r\n return element;\r\n }\r\n return element.parentElement\r\n ? this.getParentElementById(element.parentElement, id)\r\n : null;\r\n }\r\n\r\n private containClasses(element: HTMLElement, cssClasses: string[]): boolean {\r\n if (!element.classList) {\r\n return false;\r\n }\r\n for (const cssClass of cssClasses) {\r\n if (!element.classList.contains(cssClass)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n focusin() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.focused = true;\r\n }\r\n\r\n focusout() {\r\n if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) {\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n private moveUp() {\r\n this.hoveringValue = Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.filteredData,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n\r\n private moveDown() {\r\n this.hoveringValue = Select2Utils.getNextOption(this.filteredData, this.hoveringValue);\r\n\r\n if (this.resultsElement) {\r\n const lastScrollTopIndex = Select2Utils.getLastScrollTopIndex(\r\n this.hoveringValue,\r\n this.resultsElement,\r\n this.filteredData,\r\n this.lastScrollTopIndex\r\n );\r\n if (lastScrollTopIndex !== null) {\r\n this.lastScrollTopIndex = lastScrollTopIndex;\r\n }\r\n }\r\n }\r\n\r\n private selectByEnter() {\r\n if (this.hoveringValue) {\r\n const option = Select2Utils.getOptionByValue(this.data, this.hoveringValue);\r\n this.select(option);\r\n }\r\n }\r\n\r\n select(option: Select2Option | null) {\r\n let value: any;\r\n if (option !== null) {\r\n if (this.multiple) {\r\n const options = this.option as Select2Option[];\r\n const index = options.findIndex(op => op.value === option.value);\r\n if (index === -1) {\r\n options.push(option);\r\n } else {\r\n options.splice(index, 1);\r\n }\r\n value = (this.option as Select2Option[]).map(op => op.value);\r\n } else {\r\n this.option = option;\r\n this.isOpen = false;\r\n if (this.selectionElement) {\r\n this.selectionElement.focus();\r\n }\r\n value = this.option.value;\r\n }\r\n } else if (this._control) {\r\n this.option = null;\r\n }\r\n\r\n if (this._control) {\r\n\r\n this._onChange(value);\r\n }\r\n this.update.emit(value);\r\n }\r\n\r\n keyDown(e: KeyboardEvent) {\r\n if (this._testKey(e, ['ArrowDown', 40])) {\r\n this.moveDown();\r\n e.preventDefault();\r\n } else if (this._testKey(e, ['ArrowUp', 38])) {\r\n this.moveUp();\r\n e.preventDefault();\r\n } else if (this._testKey(e, ['Enter', 13])) {\r\n this.selectByEnter();\r\n e.preventDefault();\r\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) {\r\n this.toggleOpenAndClose();\r\n this.focused = false;\r\n }\r\n }\r\n\r\n openKey(e: KeyboardEvent) {\r\n if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) {\r\n this.toggleOpenAndClose();\r\n e.preventDefault();\r\n } else if (this._testKey(e, ['Escape', 9])) {\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n trackBy(_index: number, item: Select2Option): any {\r\n return item.value;\r\n }\r\n\r\n searchUpdate(e: Event) {\r\n this.searchText = (e.target as HTMLInputElement).value;\r\n }\r\n\r\n isSelected(option: Select2Option) {\r\n return Select2Utils.isSelected(this.option, option, this.multiple);\r\n }\r\n\r\n isDisabled(option: Select2Option) {\r\n return option.disabled ? 'true' : 'false';\r\n }\r\n\r\n removeSelection(e: MouseEvent, option: Select2Option) {\r\n Select2Utils.removeSelection(this.option, option);\r\n\r\n const value = (this.option as Select2Option[]).map(op => op.value);\r\n if (this._control) {\r\n this._onChange(value);\r\n }\r\n this.update.emit(value);\r\n\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (this.isOpen) {\r\n this.focusSearchboxOrResultsElement();\r\n }\r\n }\r\n\r\n /**\r\n * Sets the model value. Implemented as part of ControlValueAccessor.\r\n * @param value\r\n */\r\n writeValue(value: any) {\r\n this._setSelectionByValue(value);\r\n }\r\n\r\n /**\r\n * Saves a callback function to be invoked when the select's value\r\n * changes from user input. Part of the ControlValueAccessor interface\r\n * required to integrate with Angular's core forms API.\r\n *\r\n * @param fn Callback to be triggered when the value changes.\r\n */\r\n registerOnChange(fn: (value: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Saves a callback function to be invoked when the select is blurred\r\n * by the user. Part of the ControlValueAccessor interface required\r\n * to integrate with Angular's core forms API.\r\n *\r\n * @param fn Callback to be triggered when the component has been touched.\r\n */\r\n registerOnTouched(fn: () => {}): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n /**\r\n * Sets whether the component should be disabled.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param isDisabled\r\n */\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n _isErrorState(): boolean {\r\n const isInvalid = this._control && this._control.invalid;\r\n const isTouched = this._control && this._control.touched;\r\n const isSubmitted = (this._parentFormGroup && this._parentFormGroup.submitted) ||\r\n (this._parentForm && this._parentForm.submitted);\r\n\r\n return !!(isInvalid && (isTouched || isSubmitted));\r\n }\r\n\r\n private _testKey(event: KeyboardEvent, refs: (number | string)[] = []): boolean {\r\n return this._isKey(this._getKey(event), refs);\r\n }\r\n\r\n\r\n private _getKey(event: KeyboardEvent): number | string {\r\n let code: number | string;\r\n\r\n if (event.key !== undefined) {\r\n code = event.key;\r\n } else if (event['keyIdentifier'] !== undefined) {\r\n code = event['keyIdentifier'];\r\n } else if (event['keyCode'] !== undefined) {\r\n code = event['keyCode'];\r\n } else {\r\n event.preventDefault();\r\n }\r\n\r\n return code;\r\n }\r\n\r\n private _isKey(code: number | string, refs: (number | string)[] = []): boolean {\r\n return refs && refs.length > 0\r\n ? refs.indexOf(code) !== -1\r\n : false;\r\n }\r\n\r\n /**\r\n * Sets the selected option based on a value. If no option can be\r\n * found with the designated value, the select trigger is cleared.\r\n */\r\n private _setSelectionByValue(value: any | any[]): void {\r\n if (this.option || (value !== undefined && value !== null)) {\r\n const isArray = Array.isArray(value);\r\n if (this.multiple && value && !isArray) {\r\n throw new Error('Non array value.');\r\n } else if (this.data) {\r\n if (this._control && this.multiple) {\r\n this.option = []; // if value is null, then empty option and return\r\n if (isArray) {\r\n // value is not null. Preselect value\r\n const selectedValues: any = Select2Utils.getOptionsByValue(this.data, value, this.multiple);\r\n selectedValues.map(\r\n item => this.select(item)\r\n );\r\n }\r\n } else {\r\n this.select(Select2Utils.getOptionByValue(this.data, value));\r\n }\r\n } else if (this._control) {\r\n this._control.viewToModelUpdate(value);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n private _dirtyCheckNativeValue() {\r\n const newValue = this.value;\r\n\r\n if (this._previousNativeValue !== newValue) {\r\n this._previousNativeValue = newValue;\r\n this._stateChanges.next();\r\n }\r\n }\r\n\r\n private _coerceBooleanProperty(value: any): boolean {\r\n return value != null && `${value}` !== 'false';\r\n }\r\n\r\n private focusSearchboxOrResultsElement() {\r\n if (!this.isSearchboxHidden) {\r\n if (this.searchInputElement) {\r\n this.searchInputElement.focus();\r\n }\r\n } else {\r\n if (this.resultsElement) {\r\n this.resultsElement.focus();\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Select2 } from './select2.component';\r\nimport { Select2Hint } from './select2-hint.component';\r\nimport { Select2Label } from './select2-label.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n declarations: [\r\n Select2Hint,\r\n Select2Label,\r\n Select2\r\n ],\r\n exports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n Select2Hint,\r\n Select2Label,\r\n Select2\r\n ]\r\n})\r\nexport class Select2Module { }\r\n","/*\r\n * Public API Surface of ng-select2-component\r\n */\r\n\r\nexport * from './lib/select2.component';\r\nexport * from './lib/select2-hint.component';\r\nexport * from './lib/select2-label.component';\r\nexport * from './lib/select2-utils';\r\nexport * from './lib/select2.module';\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\r\\n
the source code of the demo\\r\\n
1. options in group ({{value1}})
\\r\\n
\\r\\n \\r\\n
2. options ({{value2}})
\\r\\n
\\r\\n \\r\\n
3. less options ({{value3}})
\\r\\n
\\r\\n \\r\\n
4. disabled ({{value4}})
\\r\\n
\\r\\n\\r\\n \\r\\n
5. hide search box ({{value5}})
\\r\\n
\\r\\n \\r\\n
6. placeholder ({{value6}})
\\r\\n
\\r\\n \\r\\n
7. open and search event ({{value7}})
\\r\\n
\\r\\n \\r\\n
9. multiple ({{value9}})
\\r\\n
\\r\\n \\r\\n
10. form binding ({{value10}})
\\r\\n
\\r\\n
11. material style ({{value11}})
\\r\\n
\\r\\n \\r\\n
12. boolean value ({{value12}})
\\r\\n
\\r\\n \\r\\n
13. FormControl
\\r\\n
\\r\\n
14. with label ({{value14}})
\\r\\n
\\r\\n Select a state\\r\\n \\r\\n
\"","import { Component } from '@angular/core';\r\nimport { Validators, FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { Select2Option, Select2Data } from 'projects/ng-select2-component/src/lib/select2-utils';\r\n\r\nimport { data1, data2, data3, data5, data12 } from './app.data';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n data1 = data1;\r\n data2 = data2;\r\n data3 = data3;\r\n data4: Select2Data = JSON.parse(JSON.stringify(data3));\r\n data5 = data5;\r\n data6: Select2Data = JSON.parse(JSON.stringify(data3));\r\n data7: Select2Option[] = [];\r\n data9: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data10: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data11: Select2Data = JSON.parse(JSON.stringify(data1));\r\n data12 = data12;\r\n data14 = data2;\r\n\r\n minCountForSearch = Infinity;\r\n\r\n ctrlForm: FormGroup;\r\n\r\n value1 = 'CA';\r\n value2 = 'CA';\r\n value3 = 'foo';\r\n value4 = 'bar';\r\n value5 = 'foo3';\r\n value6 = '';\r\n value7 = '';\r\n value9: string[] = [];\r\n value10 = 'CA';\r\n value11 = 'CA';\r\n value12 = true;\r\n value14 = '';\r\n\r\n fg: FormGroup = new FormGroup({\r\n state: new FormControl()\r\n });\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.ctrlForm = this.fb.group({\r\n test10: new FormControl(null, Validators.required)\r\n });\r\n\r\n this.fg.patchValue(this.formData());\r\n }\r\n\r\n update1(value: string) {\r\n this.value1 = value;\r\n }\r\n\r\n update2(value: string) {\r\n this.value2 = value;\r\n }\r\n\r\n update3(value: string) {\r\n this.value3 = value;\r\n }\r\n\r\n update5(value: string) {\r\n this.value5 = value;\r\n }\r\n\r\n update6(value: string) {\r\n this.value6 = value;\r\n }\r\n\r\n open7() {\r\n this.data7 = JSON.parse(JSON.stringify(data2));\r\n }\r\n\r\n update7(value: string) {\r\n this.value7 = value;\r\n }\r\n\r\n search7(text: string) {\r\n this.data7 = text\r\n ? (JSON.parse(JSON.stringify(data2)) as Select2Option[])\r\n .filter(option => option.label.toLowerCase().indexOf(text.toLowerCase()) > -1)\r\n : JSON.parse(JSON.stringify(data2));\r\n }\r\n\r\n update9(value: string[]) {\r\n this.value9 = value;\r\n }\r\n\r\n reset9() {\r\n this.value9 = ['CA'];\r\n }\r\n\r\n reset10() {\r\n const test10 = this.ctrlForm.get('test10');\r\n if (test10) {\r\n test10.reset();\r\n }\r\n }\r\n\r\n change10() {\r\n const test10 = this.ctrlForm.get('test10');\r\n if (test10) {\r\n test10.setValue('UT');\r\n }\r\n }\r\n\r\n update11(value: string) {\r\n this.value11 = value;\r\n }\r\n\r\n update12(value: boolean) {\r\n this.value12 = value;\r\n }\r\n\r\n update14(value: string) {\r\n this.value14 = value;\r\n }\r\n\r\n resetForm() {\r\n this.fg.reset(this.formData());\r\n }\r\n print() {\r\n console.log('FormControl', this.fg.value);\r\n }\r\n\r\n formData() {\r\n return {\r\n state: ['CA', 'NV']\r\n };\r\n }\r\n}\r\n","import { Select2Data } from 'projects/ng-select2-component/src/lib/select2-utils';\r\n\r\nexport const data1: Select2Data = [\r\n {\r\n label: 'Alaskan/Hawaiian Time Zone',\r\n options: [\r\n { value: 'AK', label: 'Alaska' },\r\n { value: 'HI', label: 'Hawaii', disabled: true }\r\n ]\r\n },\r\n {\r\n label: 'Pacific Time Zone',\r\n options: [\r\n { value: 'CA', label: 'California' },\r\n { value: 'NV', label: 'Nevada' },\r\n { value: 'OR', label: 'Oregon' },\r\n { value: 'WA', label: 'Washington' }\r\n ]\r\n },\r\n {\r\n label: 'Mountain Time Zone',\r\n options: [\r\n { value: 'AZ', label: 'Arizona' },\r\n { value: 'CO', label: 'Colorado' },\r\n { value: 'ID', label: 'Idaho' },\r\n { value: 'MT', label: 'Montana' },\r\n { value: 'NE', label: 'Nebraska' },\r\n { value: 'NM', label: 'New Mexico' },\r\n { value: 'ND', label: 'North Dakota' },\r\n { value: 'UT', label: 'Utah' },\r\n { value: 'WY', label: 'Wyoming' }\r\n ]\r\n },\r\n {\r\n label: 'Central Time Zone',\r\n options: [\r\n { value: 'AL', label: 'Alabama' },\r\n { value: 'AR', label: 'Arkansas' },\r\n { value: 'IL', label: 'Illinois' },\r\n { value: 'IA', label: 'Iowa' },\r\n { value: 'KS', label: 'Kansas' },\r\n { value: 'KY', label: 'Kentucky' },\r\n { value: 'LA', label: 'Louisiana' },\r\n { value: 'MN', label: 'Minnesota' },\r\n { value: 'MS', label: 'Mississippi' },\r\n { value: 'MO', label: 'Missouri' },\r\n { value: 'OK', label: 'Oklahoma' },\r\n { value: 'SD', label: 'South Dakota' },\r\n { value: 'TX', label: 'Texas' },\r\n { value: 'TN', label: 'Tennessee' },\r\n { value: 'WI', label: 'Wisconsin' }\r\n ]\r\n },\r\n {\r\n label: 'Eastern Time Zone',\r\n options: [\r\n { value: 'CT', label: 'Connecticut' },\r\n { value: 'DE', label: 'Delaware' },\r\n { value: 'FL', label: 'Florida' },\r\n { value: 'GA', label: 'Georgia' },\r\n { value: 'IN', label: 'Indiana' },\r\n { value: 'ME', label: 'Maine' },\r\n { value: 'MD', label: 'Maryland' },\r\n { value: 'MA', label: 'Massachusetts' },\r\n { value: 'MI', label: 'Michigan' },\r\n { value: 'NH', label: 'New Hampshire' },\r\n { value: 'NJ', label: 'New Jersey' },\r\n { value: 'NY', label: 'New York' },\r\n { value: 'NC', label: 'North Carolina' },\r\n { value: 'OH', label: 'Ohio' },\r\n { value: 'PA', label: 'Pennsylvania' },\r\n { value: 'RI', label: 'Rhode Island' },\r\n { value: 'SC', label: 'South Carolina' },\r\n { value: 'VT', label: 'Vermont' },\r\n { value: 'VA', label: 'Virginia' },\r\n { value: 'WV', label: 'West Virginia' }\r\n ]\r\n }\r\n];\r\n\r\nexport const data2: Select2Data = [\r\n { value: 'AK', label: 'Alaska' },\r\n { value: 'HI', label: 'Hawaii', disabled: true },\r\n { value: 'CA', label: 'California' },\r\n { value: 'NV', label: 'Nevada' },\r\n { value: 'OR', label: 'Oregon' },\r\n { value: 'WA', label: 'Washington' },\r\n { value: 'AZ', label: 'Arizona' },\r\n { value: 'CO', label: 'Colorado' },\r\n { value: 'ID', label: 'Idaho' },\r\n { value: 'MT', label: 'Montana' },\r\n { value: 'NE', label: 'Nebraska' },\r\n { value: 'NM', label: 'New Mexico' },\r\n { value: 'ND', label: 'North Dakota' },\r\n { value: 'UT', label: 'Utah' },\r\n { value: 'WY', label: 'Wyoming' },\r\n { value: 'AL', label: 'Alabama' },\r\n { value: 'AR', label: 'Arkansas' },\r\n { value: 'IL', label: 'Illinois' },\r\n { value: 'IA', label: 'Iowa' },\r\n { value: 'KS', label: 'Kansas' },\r\n { value: 'KY', label: 'Kentucky' },\r\n { value: 'LA', label: 'Louisiana' },\r\n { value: 'MN', label: 'Minnesota' },\r\n { value: 'MS', label: 'Mississippi' },\r\n { value: 'MO', label: 'Missouri' },\r\n { value: 'OK', label: 'Oklahoma' },\r\n { value: 'SD', label: 'South Dakota' },\r\n { value: 'TX', label: 'Texas' },\r\n { value: 'TN', label: 'Tennessee' },\r\n { value: 'WI', label: 'Wisconsin' },\r\n { value: 'CT', label: 'Connecticut' },\r\n { value: 'DE', label: 'Delaware' },\r\n { value: 'FL', label: 'Florida' },\r\n { value: 'GA', label: 'Georgia' },\r\n { value: 'IN', label: 'Indiana' },\r\n { value: 'ME', label: 'Maine' },\r\n { value: 'MD', label: 'Maryland' },\r\n { value: 'MA', label: 'Massachusetts' },\r\n { value: 'MI', label: 'Michigan' },\r\n { value: 'NH', label: 'New Hampshire' },\r\n { value: 'NJ', label: 'New Jersey' },\r\n { value: 'NY', label: 'New York' },\r\n { value: 'NC', label: 'North Carolina' },\r\n { value: 'OH', label: 'Ohio' },\r\n { value: 'PA', label: 'Pennsylvania' },\r\n { value: 'RI', label: 'Rhode Island' },\r\n { value: 'SC', label: 'South Carolina' },\r\n { value: 'VT', label: 'Vermont' },\r\n { value: 'VA', label: 'Virginia' },\r\n { value: 'WV', label: 'West Virginia' }\r\n];\r\n\r\nexport const data3: Select2Data = [\r\n { value: 'foo', label: 'foo' },\r\n { value: 'bar', label: 'bar' },\r\n { value: 'baz', label: 'baz' }\r\n];\r\n\r\nexport const data5: Select2Data = [\r\n { value: 'foo1', label: 'foo1' },\r\n { value: 'foo2', label: 'foo2' },\r\n { value: 'foo3', label: 'foo3' },\r\n { value: 'foo4', label: 'foo4' },\r\n { value: 'foo5', label: 'foo5' },\r\n { value: 'foo6', label: 'foo6' }\r\n];\r\n\r\nexport const data12: Select2Data = [\r\n { value: true, label: 'true' },\r\n { value: false, label: 'false' }\r\n];\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { Select2Module } from 'projects/ng-select2-component/src/public_api';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n Select2Module\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/ng-select2/polyfills.js b/dist/ng-select2/polyfills.js
index f3d3bc8..7d5696f 100644
--- a/dist/ng-select2/polyfills.js
+++ b/dist/ng-select2/polyfills.js
@@ -1,5 +1,28 @@
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["polyfills"],{
+/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js":
+/*!**************************************************************************************************!*\
+ !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***!
+ \**************************************************************************************************/
+/*! no exports provided */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/es7/reflect */ "./node_modules/core-js/es7/reflect.js");
+/* harmony import */ var core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0__);
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+
+
+/***/ }),
+
/***/ "./node_modules/core-js/es7/reflect.js":
/*!*********************************************!*\
!*** ./node_modules/core-js/es7/reflect.js ***!
@@ -3233,10 +3256,10 @@ Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {
reject = rej;
});
function onResolve(value) {
- promise && (promise = null || resolve(value));
+ promise && (promise = false || resolve(value));
}
function onReject(error) {
- promise && (promise = null || reject(error));
+ promise && (promise = false || reject(error));
}
for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
var value = values_1[_i];
@@ -5467,13 +5490,14 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
/***/ 1:
-/*!********************************!*\
- !*** multi ./src/polyfills.ts ***!
- \********************************/
+/*!***************************************************************************************************************************!*\
+ !*** multi ./src/polyfills.ts ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***!
+ \***************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(/*! C:\Data\sources-svn\pitch\ng-select2\src\polyfills.ts */"./src/polyfills.ts");
+__webpack_require__(/*! c:\Data\sources-svn\pitch\ng-select2\src\polyfills.ts */"./src/polyfills.ts");
+module.exports = __webpack_require__(/*! c:\Data\sources-svn\pitch\ng-select2\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\jit-polyfills.js */"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js");
/***/ })
diff --git a/dist/ng-select2/polyfills.js.map b/dist/ng-select2/polyfills.js.map
index 10cd689..0d82de7 100644
--- a/dist/ng-select2/polyfills.js.map
+++ b/dist/ng-select2/polyfills.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/zone.js/dist/zone.js","webpack:///./src/polyfills.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtBA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,mCAAmC,gCAAgC,aAAa;AACvF,8BAA8B,mCAAmC,aAAa;AAC9E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA,wDAAwD,aAAa,EAAE,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACpFA,6BAA6B;AAC7B,uCAAuC;;;;;;;;;;;;ACDvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;;;;;ACHD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;;;;;AC1CA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;;;;;ACLzC,uBAAuB;AACvB;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;ACPA;AACA;;;;;;;;;;;;ACDA;AACA,uIAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,uMAAkF,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA;AACA;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;ACjCD;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACfA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACZA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACNA,cAAc;;;;;;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;AC9BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,GAAG;AACH;;;;;;;;;;;;ACZA;AACA;AACA;;AAEA;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AClBD;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,4EAA4E,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;ACPH;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;AClBH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;AChBH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;ACPH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;ACfH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kFAAkF,gEAAgE,EAAE;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,uCAAuC,WAAW,EAAE;AACpD;AACA,kCAAkC,aAAa,EAAE;AACjD,oCAAoC,aAAa,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sEAAsE;AACtJ;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0CAA0C;AAC5G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;;;;ACn/FD;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AAEH,mEAAmE;AACnE,+BAA+B;AAC/B,+BAA+B;AAC/B,iCAAiC;AACjC,kCAAkC;AAClC,oCAAoC;AACpC,+BAA+B;AAC/B,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAC7B,8BAA8B;AAC9B,+BAA+B;AAC/B,4BAA4B;AAC5B,iCAAiC;AACjC,4BAA4B;AAE5B,+EAA+E;AAC/E,oEAAoE;AAEpE,gEAAgE;AAChE,gCAAgC;AAGhC,yCAAyC;AACzC,kGAAkG;AACrE;AAG7B;;;;IAII;AACJ,8EAA8E;AAE9E;;;GAGG;AAEF,sGAAsG;AACtG,iGAAiG;AACjG,sHAAsH;AAEtH;;;EAGE;AACH,4DAA4D;AAE5D;;GAEG;AACwB,CAAE,6BAA6B;AAI1D;;GAEG","file":"polyfills.js","sourcesContent":["require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Zone$1 = (function (global) {\n var FUNCTION = 'function';\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n throw Error('Already loaded patch: ' + name);\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== FUNCTION) {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n // we have to define an variable here, if not\n // typescript compiler will complain below\n var isNotScheduled = task.state === notScheduled;\n if (isNotScheduled && task.type === eventTask) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this\n .name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n nativeMicroTaskQueuePromise[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return null; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === FUNCTION) {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally \n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nvar ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nvar ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nvar ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nvar ObjectCreate = Object.create;\n/** Array.prototype.slice */\nvar ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nvar ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nvar ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nvar TRUE_STR = 'true';\n/** false string const */\nvar FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nvar ZONE_SYMBOL_PREFIX = '__zone_symbol__';\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nvar zoneSymbol = Zone.__symbol__;\nvar isWindowExists = typeof window !== 'undefined';\nvar internalWindow = isWindowExists ? window : undefined;\nvar _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nvar REMOVE_ATTRIBUTE = 'removeAttribute';\nvar NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nvar zoneSymbolEventNames = {};\nvar wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask, null);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nvar isDetectedIEOrEdge = false;\nvar ieOrEdge = false;\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n return ieOrEdge;\n }\n catch (error) {\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.apply(this[ORIGINAL_DELEGATE_SYMBOL], arguments);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.apply(nativePromise, arguments);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.apply(nativeError, arguments);\n }\n }\n }\n return originalFunctionToString.apply(this, arguments);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.apply(this, arguments);\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// an identifier to tell ZoneTask do not create a new invoke closure\nvar OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nvar zoneSymbolEventNames$1 = {};\nvar globalSources = {};\nvar EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nvar IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n var customScheduleGlobal = function () {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var eventName = arguments[0];\n var options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n var capture;\n var once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource + eventName;\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : null;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n task.options = options;\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var options = arguments[2];\n var capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var listeners = [];\n var tasks = findEventTasks(target, eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(api, _global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar workerEventNames = ['error', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n var ignoreProperties = _global.__Zone_ignore_on_properties;\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow = window;\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = zoneSymbol('fake');\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext });\n api.patchEventTarget = patchEventTarget;\n return true;\n}\nfunction patchEvent(global, api) {\n patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = wrapWithCurrentZone(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return _registerElement.call(document, name, opts);\n };\n attachOriginToPatched(document.registerElement, _registerElement);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n});\nZone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n // load blackListEvents from global\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n registerElementPatch(global);\n});\nZone.__load_patch('canvas', function (global) {\n var HTMLCanvasElement = global['HTMLCanvasElement'];\n if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype &&\n HTMLCanvasElement.prototype.toBlob) {\n patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) {\n return { name: 'HTMLCanvasElement.toBlob', target: self, cbIdx: 0, args: args };\n });\n }\n});\nZone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n function patchXHR(window) {\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n XMLHttpRequest[XHR_SCHEDULED] = false;\n var data = task.data;\n var target = data.target;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] && task.state === SCHEDULED) {\n task.invoke();\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n XMLHttpRequest[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n delay: null,\n args: args,\n aborted: false\n };\n return scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n","/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol';\r\n// import 'core-js/es6/object';\r\n// import 'core-js/es6/function';\r\n// import 'core-js/es6/parse-int';\r\n// import 'core-js/es6/parse-float';\r\n// import 'core-js/es6/number';\r\n// import 'core-js/es6/math';\r\n// import 'core-js/es6/string';\r\n// import 'core-js/es6/date';\r\n// import 'core-js/es6/array';\r\n// import 'core-js/es6/regexp';\r\n// import 'core-js/es6/map';\r\n// import 'core-js/es6/weak-map';\r\n// import 'core-js/es6/set';\r\n\r\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect';\r\n\r\n\r\n/** Evergreen browsers require these. **/\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\nimport 'core-js/es7/reflect';\r\n\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n **/\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n */\r\n\r\n // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n\r\n /*\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n */\r\n// (window as any).__Zone_enable_cross_context_check = true;\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\r\n\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js","webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/zone.js/dist/zone.js","webpack:///./src/polyfills.ts"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,wBAAwB,mBAAO,CAAC,0EAAkB;AAClD,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;ACpFa;AACb,aAAa,mBAAO,CAAC,4DAAW;AAChC,cAAc,mBAAO,CAAC,4DAAW;AACjC,eAAe,mBAAO,CAAC,gE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AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,sDAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,cAAc,mBAAO,CAAC,kEAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0DAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,UAAU,mBAAO,CAAC,4DAAW;AAC7B,cAAc,mBAAO,CAAC,4DAAW;AACjC,aAAa,mBAAO,CAAC,4DAAW;AAChC,iDAAiD,mBAAO,CAAC,sEAAgB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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gEAAa;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACW;AACZ,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kFAAkF,gEAAgE,EAAE;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,uCAAuC,WAAW,EAAE;AACpD;AACA,kCAAkC,aAAa,EAAE;AACjD,oCAAoC,aAAa,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sEAAsE;AACtJ;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sCAAsC,MAAI;AAC1C;AACA;AACA,sCAAsC,MAAI;AAC1C;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0CAA0C;AAC5G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;ACn/FD;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AAEH,mEAAmE;AACnE,+BAA+B;AAC/B,+BAA+B;AAC/B,iCAAiC;AACjC,kCAAkC;AAClC,oCAAoC;AACpC,+BAA+B;AAC/B,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAC7B,8BAA8B;AAC9B,+BAA+B;AAC/B,4BAA4B;AAC5B,iCAAiC;AACjC,4BAA4B;AAE5B,+EAA+E;AAC/E,oEAAoE;AAEpE,gEAAgE;AAChE,gCAAgC;AAGhC,yCAAyC;AACzC,kGAAkG;AACrE;AAG7B;;;;IAII;AACJ,8EAA8E;AAE9E;;;GAGG;AAEF,sGAAsG;AACtG,iGAAiG;AACjG,sHAAsH;AAEtH;;;EAGE;AACH,4DAA4D;AAE5D;;GAEG;AACwB,CAAE,6BAA6B;AAI1D;;GAEG","file":"polyfills.js","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport 'core-js/es7/reflect';\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Zone$1 = (function (global) {\n var FUNCTION = 'function';\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n throw Error('Already loaded patch: ' + name);\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== FUNCTION) {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n // we have to define an variable here, if not\n // typescript compiler will complain below\n var isNotScheduled = task.state === notScheduled;\n if (isNotScheduled && task.type === eventTask) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this\n .name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n nativeMicroTaskQueuePromise[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return null; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === FUNCTION) {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally \n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nvar ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nvar ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nvar ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nvar ObjectCreate = Object.create;\n/** Array.prototype.slice */\nvar ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nvar ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nvar ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nvar TRUE_STR = 'true';\n/** false string const */\nvar FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nvar ZONE_SYMBOL_PREFIX = '__zone_symbol__';\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nvar zoneSymbol = Zone.__symbol__;\nvar isWindowExists = typeof window !== 'undefined';\nvar internalWindow = isWindowExists ? window : undefined;\nvar _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nvar REMOVE_ATTRIBUTE = 'removeAttribute';\nvar NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nvar zoneSymbolEventNames = {};\nvar wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask, null);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nvar isDetectedIEOrEdge = false;\nvar ieOrEdge = false;\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n return ieOrEdge;\n }\n catch (error) {\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.apply(this[ORIGINAL_DELEGATE_SYMBOL], arguments);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.apply(nativePromise, arguments);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.apply(nativeError, arguments);\n }\n }\n }\n return originalFunctionToString.apply(this, arguments);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.apply(this, arguments);\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// an identifier to tell ZoneTask do not create a new invoke closure\nvar OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nvar zoneSymbolEventNames$1 = {};\nvar globalSources = {};\nvar EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nvar IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n var customScheduleGlobal = function () {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var eventName = arguments[0];\n var options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n var capture;\n var once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource + eventName;\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : null;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n task.options = options;\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var options = arguments[2];\n var capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var listeners = [];\n var tasks = findEventTasks(target, eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(api, _global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar workerEventNames = ['error', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n var ignoreProperties = _global.__Zone_ignore_on_properties;\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow = window;\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = zoneSymbol('fake');\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext });\n api.patchEventTarget = patchEventTarget;\n return true;\n}\nfunction patchEvent(global, api) {\n patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = wrapWithCurrentZone(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return _registerElement.call(document, name, opts);\n };\n attachOriginToPatched(document.registerElement, _registerElement);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n});\nZone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n // load blackListEvents from global\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n registerElementPatch(global);\n});\nZone.__load_patch('canvas', function (global) {\n var HTMLCanvasElement = global['HTMLCanvasElement'];\n if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype &&\n HTMLCanvasElement.prototype.toBlob) {\n patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) {\n return { name: 'HTMLCanvasElement.toBlob', target: self, cbIdx: 0, args: args };\n });\n }\n});\nZone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n function patchXHR(window) {\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n XMLHttpRequest[XHR_SCHEDULED] = false;\n var data = task.data;\n var target = data.target;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] && task.state === SCHEDULED) {\n task.invoke();\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n XMLHttpRequest[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n delay: null,\n args: args,\n aborted: false\n };\n return scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n","/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol';\r\n// import 'core-js/es6/object';\r\n// import 'core-js/es6/function';\r\n// import 'core-js/es6/parse-int';\r\n// import 'core-js/es6/parse-float';\r\n// import 'core-js/es6/number';\r\n// import 'core-js/es6/math';\r\n// import 'core-js/es6/string';\r\n// import 'core-js/es6/date';\r\n// import 'core-js/es6/array';\r\n// import 'core-js/es6/regexp';\r\n// import 'core-js/es6/map';\r\n// import 'core-js/es6/weak-map';\r\n// import 'core-js/es6/set';\r\n\r\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect';\r\n\r\n\r\n/** Evergreen browsers require these. **/\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\nimport 'core-js/es7/reflect';\r\n\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n **/\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n */\r\n\r\n // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n\r\n /*\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n */\r\n// (window as any).__Zone_enable_cross_context_check = true;\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\r\n\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/ng-select2/runtime.js b/dist/ng-select2/runtime.js
index d2c03a5..fd2c03c 100644
--- a/dist/ng-select2/runtime.js
+++ b/dist/ng-select2/runtime.js
@@ -4,6 +4,7 @@
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
+/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
@@ -20,6 +21,7 @@
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
+/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
@@ -93,19 +95,34 @@
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, {
-/******/ configurable: false,
-/******/ enumerable: true,
-/******/ get: getter
-/******/ });
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
diff --git a/dist/ng-select2/runtime.js.map b/dist/ng-select2/runtime.js.map
index 0812ea9..c9491c1 100644
--- a/dist/ng-select2/runtime.js.map
+++ b/dist/ng-select2/runtime.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAiB,4BAA4B;AAC7C;AACA;AACA,0BAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAgB,uBAAuB;AACvC;;;AAGA;AACA","file":"runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAiB,4BAA4B;AAC7C;AACA;AACA,0BAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAgB,uBAAuB;AACvC;;;AAGA;AACA","file":"runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/ng-select2/styles.js b/dist/ng-select2/styles.js
index 9f0a7ab..56de796 100644
--- a/dist/ng-select2/styles.js
+++ b/dist/ng-select2/styles.js
@@ -1,13 +1,13 @@
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["styles"],{
-/***/ "./node_modules/raw-loader/index.js!./node_modules/postcss-loader/lib/index.js??embedded!./src/styles.css":
-/*!**********************************************************************************************!*\
- !*** ./node_modules/raw-loader!./node_modules/postcss-loader/lib??embedded!./src/styles.css ***!
- \**********************************************************************************************/
+/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./src/styles.css":
+/*!*****************************************************************************************************************************************************************!*\
+ !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./src/styles.css ***!
+ \*****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
-module.exports = "/* You can add global styles to this file, and also import other style files */\r\n"
+module.exports = [[module.i, "/* You can add global styles to this file, and also import other style files */\r\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtFQUErRSIsImZpbGUiOiJzcmMvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cclxuIl19 */", '', '']]
/***/ }),
@@ -43,14 +43,17 @@ var isOldIE = memoize(function () {
return window && document && document.all && !window.atob;
});
-var getTarget = function (target) {
+var getTarget = function (target, parent) {
+ if (parent){
+ return parent.querySelector(target);
+ }
return document.querySelector(target);
};
var getElement = (function (fn) {
var memo = {};
- return function(target) {
+ return function(target, parent) {
// If passing function in options, then use it for resolve "head" element.
// Useful for Shadow Root style i.e
// {
@@ -60,7 +63,7 @@ var getElement = (function (fn) {
return target();
}
if (typeof memo[target] === "undefined") {
- var styleTarget = getTarget.call(this, target);
+ var styleTarget = getTarget.call(this, target, parent);
// Special case to return head of iframe instead of iframe itself
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
try {
@@ -201,7 +204,7 @@ function insertStyleElement (options, style) {
} else if (options.insertAt === "bottom") {
target.appendChild(style);
} else if (typeof options.insertAt === "object" && options.insertAt.before) {
- var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
+ var nextSibling = getElement(options.insertAt.before, target);
target.insertBefore(style, nextSibling);
} else {
throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
@@ -225,6 +228,13 @@ function createStyleElement (options) {
options.attrs.type = "text/css";
}
+ if(options.attrs.nonce === undefined) {
+ var nonce = getNonce();
+ if (nonce) {
+ options.attrs.nonce = nonce;
+ }
+ }
+
addAttrs(style, options.attrs);
insertStyleElement(options, style);
@@ -251,12 +261,20 @@ function addAttrs (el, attrs) {
});
}
+function getNonce() {
+ if (false) {}
+
+ return __webpack_require__.nc;
+}
+
function addStyle (obj, options) {
var style, update, remove, result;
// If a transform function was defined, run it on the css
if (options.transform && obj.css) {
- result = options.transform(obj.css);
+ result = typeof options.transform === 'function'
+ ? options.transform(obj.css)
+ : options.transform.default(obj.css);
if (result) {
// If transform returns a value, use that instead of the original css.
@@ -510,7 +528,7 @@ module.exports = function (css) {
/***/ (function(module, exports, __webpack_require__) {
-var content = __webpack_require__(/*! !../node_modules/raw-loader!../node_modules/postcss-loader/lib??embedded!./styles.css */ "./node_modules/raw-loader/index.js!./node_modules/postcss-loader/lib/index.js??embedded!./src/styles.css");
+var content = __webpack_require__(/*! !../node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../node_modules/postcss-loader/src??embedded!./styles.css */ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./src/styles.css");
if(typeof content === 'string') content = [[module.i, content, '']];
@@ -539,7 +557,7 @@ if(false) {}
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(/*! C:\Data\sources-svn\pitch\ng-select2\src\styles.css */"./src/styles.css");
+module.exports = __webpack_require__(/*! c:\Data\sources-svn\pitch\ng-select2\src\styles.css */"./src/styles.css");
/***/ })
diff --git a/dist/ng-select2/styles.js.map b/dist/ng-select2/styles.js.map
index 398d86f..43bbf3c 100644
--- a/dist/ng-select2/styles.js.map
+++ b/dist/ng-select2/styles.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./src/styles.css","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/styles.css?811a"],"names":[],"mappings":";;;;;;;;;AAAA,sG;;;;;;;;;;;ACAA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;ACvFA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA,Y","file":"styles.js","sourcesContent":["module.exports = \"/* You can add global styles to this file, and also import other style files */\\r\\n\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of
+
+
+ could become:
+
+
+
+
+
+
+ Note the use of @polyfill in the comment above a ShadowDOM specific style
+ declaration. This is a directive to the styling shim to use the selector
+ in comments in lieu of the next selector when running under polyfill.
+*/
+var ShadowCss = /** @class */ (function () {
+ function ShadowCss() {
+ this.strictStyling = true;
+ }
+ /*
+ * Shim some cssText with the given selector. Returns cssText that can
+ * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css).
+ *
+ * When strictStyling is true:
+ * - selector is the attribute added to all elements inside the host,
+ * - hostSelector is the attribute added to the host itself.
+ */
+ ShadowCss.prototype.shimCssText = function (cssText, selector, hostSelector) {
+ if (hostSelector === void 0) { hostSelector = ''; }
+ var commentsWithHash = extractCommentsWithHash(cssText);
+ cssText = stripComments(cssText);
+ cssText = this._insertDirectives(cssText);
+ var scopedCssText = this._scopeCssText(cssText, selector, hostSelector);
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([scopedCssText], commentsWithHash).join('\n');
};
- Xliff.prototype.load = function (content, url) {
- // xliff to xml nodes
- var xliffParser = new XliffParser();
- var _a = xliffParser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;
- // xml nodes to i18n nodes
- var i18nNodesByMsgId = {};
- var converter = new XmlToI18n();
- Object.keys(msgIdToHtml).forEach(function (msgId) {
- var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, e = _a.errors;
- errors.push.apply(errors, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(e));
- i18nNodesByMsgId[msgId] = i18nNodes;
+ ShadowCss.prototype._insertDirectives = function (cssText) {
+ cssText = this._insertPolyfillDirectivesInCssText(cssText);
+ return this._insertPolyfillRulesInCssText(cssText);
+ };
+ /*
+ * Process styles to convert native ShadowDOM rules that will trip
+ * up the css parser; we rely on decorating the stylesheet with inert rules.
+ *
+ * For example, we convert this rule:
+ *
+ * polyfill-next-selector { content: ':host menu-item'; }
+ * ::content menu-item {
+ *
+ * to this:
+ *
+ * scopeName menu-item {
+ *
+ **/
+ ShadowCss.prototype._insertPolyfillDirectivesInCssText = function (cssText) {
+ // Difference with webcomponents.js: does not handle comments
+ return cssText.replace(_cssContentNextSelectorRe, function () {
+ var m = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ m[_i] = arguments[_i];
+ }
+ return m[2] + '{';
});
- if (errors.length) {
- throw new Error("xliff parse errors:\n" + errors.join('\n'));
+ };
+ /*
+ * Process styles to add rules which will only apply under the polyfill
+ *
+ * For example, we convert this rule:
+ *
+ * polyfill-rule {
+ * content: ':host menu-item';
+ * ...
+ * }
+ *
+ * to this:
+ *
+ * scopeName menu-item {...}
+ *
+ **/
+ ShadowCss.prototype._insertPolyfillRulesInCssText = function (cssText) {
+ // Difference with webcomponents.js: does not handle comments
+ return cssText.replace(_cssContentRuleRe, function () {
+ var m = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ m[_i] = arguments[_i];
+ }
+ var rule = m[0].replace(m[1], '').replace(m[2], '');
+ return m[4] + rule;
+ });
+ };
+ /* Ensure styles are scoped. Pseudo-scoping takes a rule like:
+ *
+ * .foo {... }
+ *
+ * and converts this to
+ *
+ * scopeName .foo { ... }
+ */
+ ShadowCss.prototype._scopeCssText = function (cssText, scopeSelector, hostSelector) {
+ var unscopedRules = this._extractUnscopedRulesFromCssText(cssText);
+ // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively
+ cssText = this._insertPolyfillHostInCssText(cssText);
+ cssText = this._convertColonHost(cssText);
+ cssText = this._convertColonHostContext(cssText);
+ cssText = this._convertShadowDOMSelectors(cssText);
+ if (scopeSelector) {
+ cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector);
}
- return { locale: locale, i18nNodesByMsgId: i18nNodesByMsgId };
+ cssText = cssText + '\n' + unscopedRules;
+ return cssText.trim();
};
- Xliff.prototype.digest = function (message) { return digest(message); };
- return Xliff;
-}(Serializer));
-var _WriteVisitor = /** @class */ (function () {
- function _WriteVisitor() {
- }
- _WriteVisitor.prototype.visitText = function (text, context) { return [new Text$2(text.value)]; };
- _WriteVisitor.prototype.visitContainer = function (container, context) {
- var _this = this;
- var nodes = [];
- container.children.forEach(function (node) { return nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(node.visit(_this))); });
- return nodes;
+ /*
+ * Process styles to add rules which will only apply under the polyfill
+ * and do not process via CSSOM. (CSSOM is destructive to rules on rare
+ * occasions, e.g. -webkit-calc on Safari.)
+ * For example, we convert this rule:
+ *
+ * @polyfill-unscoped-rule {
+ * content: 'menu-item';
+ * ... }
+ *
+ * to this:
+ *
+ * menu-item {...}
+ *
+ **/
+ ShadowCss.prototype._extractUnscopedRulesFromCssText = function (cssText) {
+ // Difference with webcomponents.js: does not handle comments
+ var r = '';
+ var m;
+ _cssContentUnscopedRuleRe.lastIndex = 0;
+ while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) {
+ var rule = m[0].replace(m[2], '').replace(m[1], m[4]);
+ r += rule + '\n\n';
+ }
+ return r;
};
- _WriteVisitor.prototype.visitIcu = function (icu, context) {
- var _this = this;
- var nodes = [new Text$2("{" + icu.expressionPlaceholder + ", " + icu.type + ", ")];
- Object.keys(icu.cases).forEach(function (c) {
- nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([new Text$2(c + " {")], icu.cases[c].visit(_this), [new Text$2("} ")]));
+ /*
+ * convert a rule like :host(.foo) > .bar { }
+ *
+ * to
+ *
+ * .foo > .bar
+ */
+ ShadowCss.prototype._convertColonHost = function (cssText) {
+ return this._convertColonRule(cssText, _cssColonHostRe, this._colonHostPartReplacer);
+ };
+ /*
+ * convert a rule like :host-context(.foo) > .bar { }
+ *
+ * to
+ *
+ * .foo > .bar, .foo scopeName > .bar { }
+ *
+ * and
+ *
+ * :host-context(.foo:host) .bar { ... }
+ *
+ * to
+ *
+ * .foo .bar { ... }
+ */
+ ShadowCss.prototype._convertColonHostContext = function (cssText) {
+ return this._convertColonRule(cssText, _cssColonHostContextRe, this._colonHostContextPartReplacer);
+ };
+ ShadowCss.prototype._convertColonRule = function (cssText, regExp, partReplacer) {
+ // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule
+ return cssText.replace(regExp, function () {
+ var m = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ m[_i] = arguments[_i];
+ }
+ if (m[2]) {
+ var parts = m[2].split(',');
+ var r = [];
+ for (var i = 0; i < parts.length; i++) {
+ var p = parts[i].trim();
+ if (!p)
+ break;
+ r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
+ }
+ return r.join(',');
+ }
+ else {
+ return _polyfillHostNoCombinator + m[3];
+ }
});
- nodes.push(new Text$2("}"));
- return nodes;
};
- _WriteVisitor.prototype.visitTagPlaceholder = function (ph, context) {
- var ctype = getCtypeForTag(ph.tag);
- if (ph.isVoid) {
- // void tags have no children nor closing tags
- return [new Tag(_PLACEHOLDER_TAG, { id: ph.startName, ctype: ctype, 'equiv-text': "<" + ph.tag + "/>" })];
+ ShadowCss.prototype._colonHostContextPartReplacer = function (host, part, suffix) {
+ if (part.indexOf(_polyfillHost) > -1) {
+ return this._colonHostPartReplacer(host, part, suffix);
+ }
+ else {
+ return host + part + suffix + ', ' + part + ' ' + host + suffix;
}
- var startTagPh = new Tag(_PLACEHOLDER_TAG, { id: ph.startName, ctype: ctype, 'equiv-text': "<" + ph.tag + ">" });
- var closeTagPh = new Tag(_PLACEHOLDER_TAG, { id: ph.closeName, ctype: ctype, 'equiv-text': "" + ph.tag + ">" });
- return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([startTagPh], this.serialize(ph.children), [closeTagPh]);
};
- _WriteVisitor.prototype.visitPlaceholder = function (ph, context) {
- return [new Tag(_PLACEHOLDER_TAG, { id: ph.name, 'equiv-text': "{{" + ph.value + "}}" })];
+ ShadowCss.prototype._colonHostPartReplacer = function (host, part, suffix) {
+ return host + part.replace(_polyfillHost, '') + suffix;
};
- _WriteVisitor.prototype.visitIcuPlaceholder = function (ph, context) {
- var equivText = "{" + ph.value.expression + ", " + ph.value.type + ", " + Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ') + "}";
- return [new Tag(_PLACEHOLDER_TAG, { id: ph.name, 'equiv-text': equivText })];
+ /*
+ * Convert combinators like ::shadow and pseudo-elements like ::content
+ * by replacing with space.
+ */
+ ShadowCss.prototype._convertShadowDOMSelectors = function (cssText) {
+ return _shadowDOMSelectorsRe.reduce(function (result, pattern) { return result.replace(pattern, ' '); }, cssText);
};
- _WriteVisitor.prototype.serialize = function (nodes) {
+ // change a selector like 'div' to 'name div'
+ ShadowCss.prototype._scopeSelectors = function (cssText, scopeSelector, hostSelector) {
var _this = this;
- return [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(nodes.map(function (node) { return node.visit(_this); })));
- };
- return _WriteVisitor;
-}());
-// TODO(vicb): add error management (structure)
-// Extract messages as xml nodes from the xliff file
-var XliffParser = /** @class */ (function () {
- function XliffParser() {
- this._locale = null;
- }
- XliffParser.prototype.parse = function (xliff, url) {
- this._unitMlString = null;
- this._msgIdToHtml = {};
- var xml = new XmlParser().parse(xliff, url, false);
- this._errors = xml.errors;
- visitAll(this, xml.rootNodes, null);
- return {
- msgIdToHtml: this._msgIdToHtml,
- errors: this._errors,
- locale: this._locale,
- };
+ return processRules(cssText, function (rule) {
+ var selector = rule.selector;
+ var content = rule.content;
+ if (rule.selector[0] != '@') {
+ selector =
+ _this._scopeSelector(rule.selector, scopeSelector, hostSelector, _this.strictStyling);
+ }
+ else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') ||
+ rule.selector.startsWith('@page') || rule.selector.startsWith('@document')) {
+ content = _this._scopeSelectors(rule.content, scopeSelector, hostSelector);
+ }
+ return new CssRule(selector, content);
+ });
};
- XliffParser.prototype.visitElement = function (element, context) {
- switch (element.name) {
- case _UNIT_TAG:
- this._unitMlString = null;
- var idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });
- if (!idAttr) {
- this._addError(element, "<" + _UNIT_TAG + "> misses the \"id\" attribute");
+ ShadowCss.prototype._scopeSelector = function (selector, scopeSelector, hostSelector, strict) {
+ var _this = this;
+ return selector.split(',')
+ .map(function (part) { return part.trim().split(_shadowDeepSelectors); })
+ .map(function (deepParts) {
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(deepParts), shallowPart = _a[0], otherParts = _a.slice(1);
+ var applyScope = function (shallowPart) {
+ if (_this._selectorNeedsScoping(shallowPart, scopeSelector)) {
+ return strict ?
+ _this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) :
+ _this._applySelectorScope(shallowPart, scopeSelector, hostSelector);
}
else {
- var id = idAttr.value;
- if (this._msgIdToHtml.hasOwnProperty(id)) {
- this._addError(element, "Duplicated translations for msg " + id);
- }
- else {
- visitAll(this, element.children, null);
- if (typeof this._unitMlString === 'string') {
- this._msgIdToHtml[id] = this._unitMlString;
- }
- else {
- this._addError(element, "Message " + id + " misses a translation");
- }
- }
- }
- break;
- // ignore those tags
- case _SOURCE_TAG:
- case _SEGMENT_SOURCE_TAG:
- break;
- case _TARGET_TAG:
- var innerTextStart = element.startSourceSpan.end.offset;
- var innerTextEnd = element.endSourceSpan.start.offset;
- var content = element.startSourceSpan.start.file.content;
- var innerText = content.slice(innerTextStart, innerTextEnd);
- this._unitMlString = innerText;
- break;
- case _FILE_TAG:
- var localeAttr = element.attrs.find(function (attr) { return attr.name === 'target-language'; });
- if (localeAttr) {
- this._locale = localeAttr.value;
+ return shallowPart;
}
- visitAll(this, element.children, null);
- break;
- default:
- // TODO(vicb): assert file structure, xliff version
- // For now only recurse on unhandled nodes
- visitAll(this, element.children, null);
- }
+ };
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([applyScope(shallowPart)], otherParts).join(' ');
+ })
+ .join(', ');
};
- XliffParser.prototype.visitAttribute = function (attribute, context) { };
- XliffParser.prototype.visitText = function (text, context) { };
- XliffParser.prototype.visitComment = function (comment, context) { };
- XliffParser.prototype.visitExpansion = function (expansion, context) { };
- XliffParser.prototype.visitExpansionCase = function (expansionCase, context) { };
- XliffParser.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
+ ShadowCss.prototype._selectorNeedsScoping = function (selector, scopeSelector) {
+ var re = this._makeScopeMatcher(scopeSelector);
+ return !re.test(selector);
};
- return XliffParser;
-}());
-// Convert ml nodes (xliff syntax) to i18n nodes
-var XmlToI18n = /** @class */ (function () {
- function XmlToI18n() {
- }
- XmlToI18n.prototype.convert = function (message, url) {
- var xmlIcu = new XmlParser().parse(message, url, true);
- this._errors = xmlIcu.errors;
- var i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?
- [] : [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(visitAll(this, xmlIcu.rootNodes)));
- return {
- i18nNodes: i18nNodes,
- errors: this._errors,
- };
+ ShadowCss.prototype._makeScopeMatcher = function (scopeSelector) {
+ var lre = /\[/g;
+ var rre = /\]/g;
+ scopeSelector = scopeSelector.replace(lre, '\\[').replace(rre, '\\]');
+ return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');
};
- XmlToI18n.prototype.visitText = function (text, context) { return new Text$1(text.value, text.sourceSpan); };
- XmlToI18n.prototype.visitElement = function (el, context) {
- if (el.name === _PLACEHOLDER_TAG) {
- var nameAttr = el.attrs.find(function (attr) { return attr.name === 'id'; });
- if (nameAttr) {
- return new Placeholder('', nameAttr.value, el.sourceSpan);
- }
- this._addError(el, "<" + _PLACEHOLDER_TAG + "> misses the \"id\" attribute");
- return null;
- }
- if (el.name === _MARKER_TAG) {
- return [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(visitAll(this, el.children)));
+ ShadowCss.prototype._applySelectorScope = function (selector, scopeSelector, hostSelector) {
+ // Difference from webcomponents.js: scopeSelector could not be an array
+ return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector);
+ };
+ // scope via name and [is=name]
+ ShadowCss.prototype._applySimpleSelectorScope = function (selector, scopeSelector, hostSelector) {
+ // In Android browser, the lastIndex is not reset when the regex is used in String.replace()
+ _polyfillHostRe.lastIndex = 0;
+ if (_polyfillHostRe.test(selector)) {
+ var replaceBy_1 = this.strictStyling ? "[" + hostSelector + "]" : scopeSelector;
+ return selector
+ .replace(_polyfillHostNoCombinatorRe, function (hnc, selector) {
+ return selector.replace(/([^:]*)(:*)(.*)/, function (_, before, colon, after) {
+ return before + replaceBy_1 + colon + after;
+ });
+ })
+ .replace(_polyfillHostRe, replaceBy_1 + ' ');
}
- this._addError(el, "Unexpected tag");
- return null;
+ return scopeSelector + ' ' + selector;
};
- XmlToI18n.prototype.visitExpansion = function (icu, context) {
- var caseMap = {};
- visitAll(this, icu.cases).forEach(function (c) {
- caseMap[c.value] = new Container(c.nodes, icu.sourceSpan);
+ // return a selector with [name] suffix on each simple selector
+ // e.g. .foo.bar > .zot becomes .foo[name].bar[name] > .zot[name] /** @internal */
+ ShadowCss.prototype._applyStrictSelectorScope = function (selector, scopeSelector, hostSelector) {
+ var _this = this;
+ var isRe = /\[is=([^\]]*)\]/g;
+ scopeSelector = scopeSelector.replace(isRe, function (_) {
+ var parts = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ parts[_i - 1] = arguments[_i];
+ }
+ return parts[0];
});
- return new Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);
- };
- XmlToI18n.prototype.visitExpansionCase = function (icuCase, context) {
- return {
- value: icuCase.value,
- nodes: visitAll(this, icuCase.expression),
+ var attrName = '[' + scopeSelector + ']';
+ var _scopeSelectorPart = function (p) {
+ var scopedP = p.trim();
+ if (!scopedP) {
+ return '';
+ }
+ if (p.indexOf(_polyfillHostNoCombinator) > -1) {
+ scopedP = _this._applySimpleSelectorScope(p, scopeSelector, hostSelector);
+ }
+ else {
+ // remove :host since it should be unnecessary
+ var t = p.replace(_polyfillHostRe, '');
+ if (t.length > 0) {
+ var matches = t.match(/([^:]*)(:*)(.*)/);
+ if (matches) {
+ scopedP = matches[1] + attrName + matches[2] + matches[3];
+ }
+ }
+ }
+ return scopedP;
};
+ var safeContent = new SafeSelector(selector);
+ selector = safeContent.content();
+ var scopedSelector = '';
+ var startIndex = 0;
+ var res;
+ var sep = /( |>|\+|~(?!=))\s*/g;
+ // If a selector appears before :host it should not be shimmed as it
+ // matches on ancestor elements and not on elements in the host's shadow
+ // `:host-context(div)` is transformed to
+ // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`
+ // the `div` is not part of the component in the 2nd selectors and should not be scoped.
+ // Historically `component-tag:host` was matching the component so we also want to preserve
+ // this behavior to avoid breaking legacy apps (it should not match).
+ // The behavior should be:
+ // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)
+ // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a
+ // `:host-context(tag)`)
+ var hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;
+ // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present
+ var shouldScope = !hasHost;
+ while ((res = sep.exec(selector)) !== null) {
+ var separator = res[1];
+ var part_1 = selector.slice(startIndex, res.index).trim();
+ shouldScope = shouldScope || part_1.indexOf(_polyfillHostNoCombinator) > -1;
+ var scopedPart = shouldScope ? _scopeSelectorPart(part_1) : part_1;
+ scopedSelector += scopedPart + " " + separator + " ";
+ startIndex = sep.lastIndex;
+ }
+ var part = selector.substring(startIndex);
+ shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;
+ scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;
+ // replace the placeholders with their original values
+ return safeContent.restore(scopedSelector);
};
- XmlToI18n.prototype.visitComment = function (comment, context) { };
- XmlToI18n.prototype.visitAttribute = function (attribute, context) { };
- XmlToI18n.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
- };
- return XmlToI18n;
+ ShadowCss.prototype._insertPolyfillHostInCssText = function (selector) {
+ return selector.replace(_colonHostContextRe, _polyfillHostContext)
+ .replace(_colonHostRe, _polyfillHost);
+ };
+ return ShadowCss;
}());
-function getCtypeForTag(tag) {
- switch (tag.toLowerCase()) {
- case 'br':
- return 'lb';
- case 'img':
- return 'image';
- default:
- return "x-" + tag;
+var SafeSelector = /** @class */ (function () {
+ function SafeSelector(selector) {
+ var _this = this;
+ this.placeholders = [];
+ this.index = 0;
+ // Replaces attribute selectors with placeholders.
+ // The WS in [attr="va lue"] would otherwise be interpreted as a selector separator.
+ selector = selector.replace(/(\[[^\]]*\])/g, function (_, keep) {
+ var replaceBy = "__ph-" + _this.index + "__";
+ _this.placeholders.push(keep);
+ _this.index++;
+ return replaceBy;
+ });
+ // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.
+ // WS and "+" would otherwise be interpreted as selector separators.
+ this._content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, function (_, pseudo, exp) {
+ var replaceBy = "__ph-" + _this.index + "__";
+ _this.placeholders.push(exp);
+ _this.index++;
+ return pseudo + replaceBy;
+ });
+ }
+ SafeSelector.prototype.restore = function (content) {
+ var _this = this;
+ return content.replace(/__ph-(\d+)__/g, function (ph, index) { return _this.placeholders[+index]; });
+ };
+ SafeSelector.prototype.content = function () { return this._content; };
+ return SafeSelector;
+}());
+var _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim;
+var _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim;
+var _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim;
+var _polyfillHost = '-shadowcsshost';
+// note: :host-context pre-processed to -shadowcsshostcontext.
+var _polyfillHostContext = '-shadowcsscontext';
+var _parenSuffix = ')(?:\\((' +
+ '(?:\\([^)(]*\\)|[^)(]*)+?' +
+ ')\\))?([^,{]*)';
+var _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim');
+var _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim');
+var _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';
+var _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/;
+var _shadowDOMSelectorsRe = [
+ /::shadow/g,
+ /::content/g,
+ // Deprecated selectors
+ /\/shadow-deep\//g,
+ /\/shadow\//g,
+];
+// The deep combinator is deprecated in the CSS spec
+// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future.
+// see https://github.com/angular/angular/pull/17677
+var _shadowDeepSelectors = /(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g;
+var _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$';
+var _polyfillHostRe = /-shadowcsshost/gim;
+var _colonHostRe = /:host/gim;
+var _colonHostContextRe = /:host-context/gim;
+var _commentRe = /\/\*\s*[\s\S]*?\*\//g;
+function stripComments(input) {
+ return input.replace(_commentRe, '');
+}
+var _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
+function extractCommentsWithHash(input) {
+ return input.match(_commentWithHashRe) || [];
+}
+var _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
+var _curlyRe = /([{}])/g;
+var OPEN_CURLY = '{';
+var CLOSE_CURLY = '}';
+var BLOCK_PLACEHOLDER = '%BLOCK%';
+var CssRule = /** @class */ (function () {
+ function CssRule(selector, content) {
+ this.selector = selector;
+ this.content = content;
+ }
+ return CssRule;
+}());
+function processRules(input, ruleCallback) {
+ var inputWithEscapedBlocks = escapeBlocks(input);
+ var nextBlockIndex = 0;
+ return inputWithEscapedBlocks.escapedString.replace(_ruleRe, function () {
+ var m = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ m[_i] = arguments[_i];
+ }
+ var selector = m[2];
+ var content = '';
+ var suffix = m[4];
+ var contentPrefix = '';
+ if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {
+ content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
+ suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
+ contentPrefix = '{';
+ }
+ var rule = ruleCallback(new CssRule(selector, content));
+ return "" + m[1] + rule.selector + m[3] + contentPrefix + rule.content + suffix;
+ });
+}
+var StringWithEscapedBlocks = /** @class */ (function () {
+ function StringWithEscapedBlocks(escapedString, blocks) {
+ this.escapedString = escapedString;
+ this.blocks = blocks;
+ }
+ return StringWithEscapedBlocks;
+}());
+function escapeBlocks(input) {
+ var inputParts = input.split(_curlyRe);
+ var resultParts = [];
+ var escapedBlocks = [];
+ var bracketCount = 0;
+ var currentBlockParts = [];
+ for (var partIndex = 0; partIndex < inputParts.length; partIndex++) {
+ var part = inputParts[partIndex];
+ if (part == CLOSE_CURLY) {
+ bracketCount--;
+ }
+ if (bracketCount > 0) {
+ currentBlockParts.push(part);
+ }
+ else {
+ if (currentBlockParts.length > 0) {
+ escapedBlocks.push(currentBlockParts.join(''));
+ resultParts.push(BLOCK_PLACEHOLDER);
+ currentBlockParts = [];
+ }
+ resultParts.push(part);
+ }
+ if (part == OPEN_CURLY) {
+ bracketCount++;
+ }
+ }
+ if (currentBlockParts.length > 0) {
+ escapedBlocks.push(currentBlockParts.join(''));
+ resultParts.push(BLOCK_PLACEHOLDER);
}
+ return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks);
}
/**
@@ -12899,307 +14587,475 @@ function getCtypeForTag(tag) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var _VERSION$1 = '2.0';
-var _XMLNS$1 = 'urn:oasis:names:tc:xliff:document:2.0';
-// TODO(vicb): make this a param (s/_/-/)
-var _DEFAULT_SOURCE_LANG$1 = 'en';
-var _PLACEHOLDER_TAG$1 = 'ph';
-var _PLACEHOLDER_SPANNING_TAG = 'pc';
-var _MARKER_TAG$1 = 'mrk';
-var _XLIFF_TAG = 'xliff';
-var _SOURCE_TAG$1 = 'source';
-var _TARGET_TAG$1 = 'target';
-var _UNIT_TAG$1 = 'unit';
-// http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html
-var Xliff2 = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(Xliff2, _super);
- function Xliff2() {
- return _super !== null && _super.apply(this, arguments) || this;
+var COMPONENT_VARIABLE = '%COMP%';
+var HOST_ATTR = "_nghost-" + COMPONENT_VARIABLE;
+var CONTENT_ATTR = "_ngcontent-" + COMPONENT_VARIABLE;
+var StylesCompileDependency = /** @class */ (function () {
+ function StylesCompileDependency(name, moduleUrl, setValue) {
+ this.name = name;
+ this.moduleUrl = moduleUrl;
+ this.setValue = setValue;
}
- Xliff2.prototype.write = function (messages, locale) {
- var visitor = new _WriteVisitor$1();
- var units = [];
- messages.forEach(function (message) {
- var unit = new Tag(_UNIT_TAG$1, { id: message.id });
- var notes = new Tag('notes');
- if (message.description || message.meaning) {
- if (message.description) {
- notes.children.push(new CR(8), new Tag('note', { category: 'description' }, [new Text$2(message.description)]));
- }
- if (message.meaning) {
- notes.children.push(new CR(8), new Tag('note', { category: 'meaning' }, [new Text$2(message.meaning)]));
- }
- }
- message.sources.forEach(function (source) {
- notes.children.push(new CR(8), new Tag('note', { category: 'location' }, [
- new Text$2(source.filePath + ":" + source.startLine + (source.endLine !== source.startLine ? ',' + source.endLine : ''))
- ]));
- });
- notes.children.push(new CR(6));
- unit.children.push(new CR(6), notes);
- var segment = new Tag('segment');
- segment.children.push(new CR(8), new Tag(_SOURCE_TAG$1, {}, visitor.serialize(message.nodes)), new CR(6));
- unit.children.push(new CR(6), segment, new CR(4));
- units.push(new CR(4), unit);
- });
- var file = new Tag('file', { 'original': 'ng.template', id: 'ngi18n' }, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(units, [new CR(2)]));
- var xliff = new Tag(_XLIFF_TAG, { version: _VERSION$1, xmlns: _XMLNS$1, srcLang: locale || _DEFAULT_SOURCE_LANG$1 }, [new CR(2), file, new CR()]);
- return serialize([
- new Declaration({ version: '1.0', encoding: 'UTF-8' }), new CR(), xliff, new CR()
- ]);
+ return StylesCompileDependency;
+}());
+var CompiledStylesheet = /** @class */ (function () {
+ function CompiledStylesheet(outputCtx, stylesVar, dependencies, isShimmed, meta) {
+ this.outputCtx = outputCtx;
+ this.stylesVar = stylesVar;
+ this.dependencies = dependencies;
+ this.isShimmed = isShimmed;
+ this.meta = meta;
+ }
+ return CompiledStylesheet;
+}());
+var StyleCompiler = /** @class */ (function () {
+ function StyleCompiler(_urlResolver) {
+ this._urlResolver = _urlResolver;
+ this._shadowCss = new ShadowCss();
+ }
+ StyleCompiler.prototype.compileComponent = function (outputCtx, comp) {
+ var template = comp.template;
+ return this._compileStyles(outputCtx, comp, new CompileStylesheetMetadata({
+ styles: template.styles,
+ styleUrls: template.styleUrls,
+ moduleUrl: identifierModuleUrl(comp.type)
+ }), this.needsStyleShim(comp), true);
};
- Xliff2.prototype.load = function (content, url) {
- // xliff to xml nodes
- var xliff2Parser = new Xliff2Parser();
- var _a = xliff2Parser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;
- // xml nodes to i18n nodes
- var i18nNodesByMsgId = {};
- var converter = new XmlToI18n$1();
- Object.keys(msgIdToHtml).forEach(function (msgId) {
- var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, e = _a.errors;
- errors.push.apply(errors, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(e));
- i18nNodesByMsgId[msgId] = i18nNodes;
- });
- if (errors.length) {
- throw new Error("xliff2 parse errors:\n" + errors.join('\n'));
- }
- return { locale: locale, i18nNodesByMsgId: i18nNodesByMsgId };
+ StyleCompiler.prototype.compileStyles = function (outputCtx, comp, stylesheet, shim) {
+ if (shim === void 0) { shim = this.needsStyleShim(comp); }
+ return this._compileStyles(outputCtx, comp, stylesheet, shim, false);
};
- Xliff2.prototype.digest = function (message) { return decimalDigest(message); };
- return Xliff2;
-}(Serializer));
-var _WriteVisitor$1 = /** @class */ (function () {
- function _WriteVisitor() {
- }
- _WriteVisitor.prototype.visitText = function (text, context) { return [new Text$2(text.value)]; };
- _WriteVisitor.prototype.visitContainer = function (container, context) {
- var _this = this;
- var nodes = [];
- container.children.forEach(function (node) { return nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(node.visit(_this))); });
- return nodes;
+ StyleCompiler.prototype.needsStyleShim = function (comp) {
+ return comp.template.encapsulation === ViewEncapsulation.Emulated;
};
- _WriteVisitor.prototype.visitIcu = function (icu, context) {
+ StyleCompiler.prototype._compileStyles = function (outputCtx, comp, stylesheet, shim, isComponentStylesheet) {
var _this = this;
- var nodes = [new Text$2("{" + icu.expressionPlaceholder + ", " + icu.type + ", ")];
- Object.keys(icu.cases).forEach(function (c) {
- nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([new Text$2(c + " {")], icu.cases[c].visit(_this), [new Text$2("} ")]));
+ var styleExpressions = stylesheet.styles.map(function (plainStyle) { return literal(_this._shimIfNeeded(plainStyle, shim)); });
+ var dependencies = [];
+ stylesheet.styleUrls.forEach(function (styleUrl) {
+ var exprIndex = styleExpressions.length;
+ // Note: This placeholder will be filled later.
+ styleExpressions.push(null);
+ dependencies.push(new StylesCompileDependency(getStylesVarName(null), styleUrl, function (value) { return styleExpressions[exprIndex] = outputCtx.importExpr(value); }));
});
- nodes.push(new Text$2("}"));
- return nodes;
+ // styles variable contains plain strings and arrays of other styles arrays (recursive),
+ // so we set its type to dynamic.
+ var stylesVar = getStylesVarName(isComponentStylesheet ? comp : null);
+ var stmt = variable(stylesVar)
+ .set(literalArr(styleExpressions, new ArrayType(DYNAMIC_TYPE, [TypeModifier.Const])))
+ .toDeclStmt(null, isComponentStylesheet ? [StmtModifier.Final] : [
+ StmtModifier.Final, StmtModifier.Exported
+ ]);
+ outputCtx.statements.push(stmt);
+ return new CompiledStylesheet(outputCtx, stylesVar, dependencies, shim, stylesheet);
};
- _WriteVisitor.prototype.visitTagPlaceholder = function (ph, context) {
- var _this = this;
- var type = getTypeForTag(ph.tag);
- if (ph.isVoid) {
- var tagPh = new Tag(_PLACEHOLDER_TAG$1, {
- id: (this._nextPlaceholderId++).toString(),
- equiv: ph.startName,
- type: type,
- disp: "<" + ph.tag + "/>",
- });
- return [tagPh];
+ StyleCompiler.prototype._shimIfNeeded = function (style, shim) {
+ return shim ? this._shadowCss.shimCssText(style, CONTENT_ATTR, HOST_ATTR) : style;
+ };
+ return StyleCompiler;
+}());
+function getStylesVarName(component) {
+ var result = "styles";
+ if (component) {
+ result += "_" + identifierName(component.type);
+ }
+ return result;
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * Parses string representation of a style and converts it into object literal.
+ *
+ * @param value string representation of style as used in the `style` attribute in HTML.
+ * Example: `color: red; height: auto`.
+ * @returns an object literal. `{ color: 'red', height: 'auto'}`.
+ */
+function parse(value) {
+ var styles = {};
+ var i = 0;
+ var parenDepth = 0;
+ var quote = 0 /* QuoteNone */;
+ var valueStart = 0;
+ var propStart = 0;
+ var currentProp = null;
+ var valueHasQuotes = false;
+ while (i < value.length) {
+ var token = value.charCodeAt(i++);
+ switch (token) {
+ case 40 /* OpenParen */:
+ parenDepth++;
+ break;
+ case 41 /* CloseParen */:
+ parenDepth--;
+ break;
+ case 39 /* QuoteSingle */:
+ // valueStart needs to be there since prop values don't
+ // have quotes in CSS
+ valueHasQuotes = valueHasQuotes || valueStart > 0;
+ if (quote === 0 /* QuoteNone */) {
+ quote = 39 /* QuoteSingle */;
+ }
+ else if (quote === 39 /* QuoteSingle */ && value.charCodeAt(i - 1) !== 92 /* BackSlash */) {
+ quote = 0 /* QuoteNone */;
+ }
+ break;
+ case 34 /* QuoteDouble */:
+ // same logic as above
+ valueHasQuotes = valueHasQuotes || valueStart > 0;
+ if (quote === 0 /* QuoteNone */) {
+ quote = 34 /* QuoteDouble */;
+ }
+ else if (quote === 34 /* QuoteDouble */ && value.charCodeAt(i - 1) !== 92 /* BackSlash */) {
+ quote = 0 /* QuoteNone */;
+ }
+ break;
+ case 58 /* Colon */:
+ if (!currentProp && parenDepth === 0 && quote === 0 /* QuoteNone */) {
+ currentProp = hyphenate(value.substring(propStart, i - 1).trim());
+ valueStart = i;
+ }
+ break;
+ case 59 /* Semicolon */:
+ if (currentProp && valueStart > 0 && parenDepth === 0 && quote === 0 /* QuoteNone */) {
+ var styleVal = value.substring(valueStart, i - 1).trim();
+ styles[currentProp] = valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal;
+ propStart = i;
+ valueStart = 0;
+ currentProp = null;
+ valueHasQuotes = false;
+ }
+ break;
}
- var tagPc = new Tag(_PLACEHOLDER_SPANNING_TAG, {
- id: (this._nextPlaceholderId++).toString(),
- equivStart: ph.startName,
- equivEnd: ph.closeName,
- type: type,
- dispStart: "<" + ph.tag + ">",
- dispEnd: "" + ph.tag + ">",
- });
- var nodes = [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(ph.children.map(function (node) { return node.visit(_this); })));
- if (nodes.length) {
- nodes.forEach(function (node) { return tagPc.children.push(node); });
+ }
+ if (currentProp && valueStart) {
+ var styleVal = value.substr(valueStart).trim();
+ styles[currentProp] = valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal;
+ }
+ return styles;
+}
+function stripUnnecessaryQuotes(value) {
+ var qS = value.charCodeAt(0);
+ var qE = value.charCodeAt(value.length - 1);
+ if (qS == qE && (qS == 39 /* QuoteSingle */ || qS == 34 /* QuoteDouble */)) {
+ var tempValue = value.substring(1, value.length - 1);
+ // special case to avoid using a multi-quoted string that was just chomped
+ // (e.g. `font-family: "Verdana", "sans-serif"`)
+ if (tempValue.indexOf('\'') == -1 && tempValue.indexOf('"') == -1) {
+ value = tempValue;
}
- else {
- tagPc.children.push(new Text$2(''));
+ }
+ return value;
+}
+function hyphenate(value) {
+ return value.replace(/[a-z][A-Z]/g, function (v) {
+ return v.charAt(0) + '-' + v.charAt(1);
+ }).toLowerCase();
+}
+
+/**
+ * Produces creation/update instructions for all styling bindings (class and style)
+ *
+ * The builder class below handles producing instructions for the following cases:
+ *
+ * - Static style/class attributes (style="..." and class="...")
+ * - Dynamic style/class map bindings ([style]="map" and [class]="map|string")
+ * - Dynamic style/class property bindings ([style.prop]="exp" and [class.name]="exp")
+ *
+ * Due to the complex relationship of all of these cases, the instructions generated
+ * for these attributes/properties/bindings must be done so in the correct order. The
+ * order which these must be generated is as follows:
+ *
+ * if (createMode) {
+ * elementStyling(...)
+ * }
+ * if (updateMode) {
+ * elementStylingMap(...)
+ * elementStyleProp(...)
+ * elementClassProp(...)
+ * elementStylingApp(...)
+ * }
+ *
+ * The creation/update methods within the builder class produce these instructions.
+ */
+var StylingBuilder = /** @class */ (function () {
+ function StylingBuilder(_elementIndexExpr, _directiveIndexExpr) {
+ this._elementIndexExpr = _elementIndexExpr;
+ this._directiveIndexExpr = _directiveIndexExpr;
+ this.hasBindingsOrInitialValues = false;
+ this._classMapInput = null;
+ this._styleMapInput = null;
+ this._singleStyleInputs = null;
+ this._singleClassInputs = null;
+ this._lastStylingInput = null;
+ // maps are used instead of hash maps because a Map will
+ // retain the ordering of the keys
+ this._stylesIndex = new Map();
+ this._classesIndex = new Map();
+ this._initialStyleValues = {};
+ this._initialClassValues = {};
+ this._useDefaultSanitizer = false;
+ this._applyFnRequired = false;
+ }
+ StylingBuilder.prototype.registerBoundInput = function (input) {
+ // [attr.style] or [attr.class] are skipped in the code below,
+ // they should not be treated as styling-based bindings since
+ // they are intended to be written directly to the attr and
+ // will therefore skip all style/class resolution that is present
+ // with style="", [style]="" and [style.prop]="", class="",
+ // [class.prop]="". [class]="" assignments
+ var name = input.name;
+ var binding = null;
+ switch (input.type) {
+ case 0 /* Property */:
+ if (name == 'style') {
+ binding = this.registerStyleInput(null, input.value, '', input.sourceSpan);
+ }
+ else if (isClassBinding(input.name)) {
+ binding = this.registerClassInput(null, input.value, input.sourceSpan);
+ }
+ break;
+ case 3 /* Style */:
+ binding = this.registerStyleInput(input.name, input.value, input.unit, input.sourceSpan);
+ break;
+ case 2 /* Class */:
+ binding = this.registerClassInput(input.name, input.value, input.sourceSpan);
+ break;
}
- return [tagPc];
+ return binding ? true : false;
};
- _WriteVisitor.prototype.visitPlaceholder = function (ph, context) {
- var idStr = (this._nextPlaceholderId++).toString();
- return [new Tag(_PLACEHOLDER_TAG$1, {
- id: idStr,
- equiv: ph.name,
- disp: "{{" + ph.value + "}}",
- })];
+ StylingBuilder.prototype.registerStyleInput = function (propertyName, value, unit, sourceSpan) {
+ var entry = { name: propertyName, unit: unit, value: value, sourceSpan: sourceSpan };
+ if (propertyName) {
+ (this._singleStyleInputs = this._singleStyleInputs || []).push(entry);
+ this._useDefaultSanitizer = this._useDefaultSanitizer || isStyleSanitizable(propertyName);
+ registerIntoMap(this._stylesIndex, propertyName);
+ this.hasBindingsOrInitialValues = true;
+ }
+ else {
+ this._useDefaultSanitizer = true;
+ this._styleMapInput = entry;
+ }
+ this._lastStylingInput = entry;
+ this.hasBindingsOrInitialValues = true;
+ this._applyFnRequired = true;
+ return entry;
};
- _WriteVisitor.prototype.visitIcuPlaceholder = function (ph, context) {
- var cases = Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ');
- var idStr = (this._nextPlaceholderId++).toString();
- return [new Tag(_PLACEHOLDER_TAG$1, { id: idStr, equiv: ph.name, disp: "{" + ph.value.expression + ", " + ph.value.type + ", " + cases + "}" })];
+ StylingBuilder.prototype.registerClassInput = function (className, value, sourceSpan) {
+ var entry = { name: className, value: value, sourceSpan: sourceSpan };
+ if (className) {
+ (this._singleClassInputs = this._singleClassInputs || []).push(entry);
+ this.hasBindingsOrInitialValues = true;
+ registerIntoMap(this._classesIndex, className);
+ }
+ else {
+ this._classMapInput = entry;
+ }
+ this._lastStylingInput = entry;
+ this.hasBindingsOrInitialValues = true;
+ this._applyFnRequired = true;
+ return entry;
};
- _WriteVisitor.prototype.serialize = function (nodes) {
+ StylingBuilder.prototype.registerStyleAttr = function (value) {
var _this = this;
- this._nextPlaceholderId = 0;
- return [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(nodes.map(function (node) { return node.visit(_this); })));
+ this._initialStyleValues = parse(value);
+ Object.keys(this._initialStyleValues).forEach(function (prop) {
+ registerIntoMap(_this._stylesIndex, prop);
+ _this.hasBindingsOrInitialValues = true;
+ });
};
- return _WriteVisitor;
-}());
-// Extract messages as xml nodes from the xliff file
-var Xliff2Parser = /** @class */ (function () {
- function Xliff2Parser() {
- this._locale = null;
- }
- Xliff2Parser.prototype.parse = function (xliff, url) {
- this._unitMlString = null;
- this._msgIdToHtml = {};
- var xml = new XmlParser().parse(xliff, url, false);
- this._errors = xml.errors;
- visitAll(this, xml.rootNodes, null);
- return {
- msgIdToHtml: this._msgIdToHtml,
- errors: this._errors,
- locale: this._locale,
- };
+ StylingBuilder.prototype.registerClassAttr = function (value) {
+ var _this = this;
+ this._initialClassValues = {};
+ value.split(/\s+/g).forEach(function (className) {
+ _this._initialClassValues[className] = true;
+ registerIntoMap(_this._classesIndex, className);
+ _this.hasBindingsOrInitialValues = true;
+ });
};
- Xliff2Parser.prototype.visitElement = function (element, context) {
- switch (element.name) {
- case _UNIT_TAG$1:
- this._unitMlString = null;
- var idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });
- if (!idAttr) {
- this._addError(element, "<" + _UNIT_TAG$1 + "> misses the \"id\" attribute");
+ StylingBuilder.prototype._buildInitExpr = function (registry, initialValues) {
+ var exprs = [];
+ var nameAndValueExprs = [];
+ // _c0 = [prop, prop2, prop3, ...]
+ registry.forEach(function (value, key) {
+ var keyLiteral = literal(key);
+ exprs.push(keyLiteral);
+ var initialValue = initialValues[key];
+ if (initialValue) {
+ nameAndValueExprs.push(keyLiteral, literal(initialValue));
+ }
+ });
+ if (nameAndValueExprs.length) {
+ // _c0 = [... MARKER ...]
+ exprs.push(literal(1 /* VALUES_MODE */));
+ // _c0 = [prop, VALUE, prop2, VALUE2, ...]
+ exprs.push.apply(exprs, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(nameAndValueExprs));
+ }
+ return exprs.length ? literalArr(exprs) : null;
+ };
+ StylingBuilder.prototype.buildCreateLevelInstruction = function (sourceSpan, constantPool) {
+ if (this.hasBindingsOrInitialValues) {
+ var initialClasses = this._buildInitExpr(this._classesIndex, this._initialClassValues);
+ var initialStyles = this._buildInitExpr(this._stylesIndex, this._initialStyleValues);
+ // in the event that a [style] binding is used then sanitization will
+ // always be imported because it is not possible to know ahead of time
+ // whether style bindings will use or not use any sanitizable properties
+ // that isStyleSanitizable() will detect
+ var useSanitizer = this._useDefaultSanitizer;
+ var params_1 = [];
+ if (initialClasses) {
+ // the template compiler handles initial class styling (e.g. class="foo") values
+ // in a special command called `elementClass` so that the initial class
+ // can be processed during runtime. These initial class values are bound to
+ // a constant because the inital class values do not change (since they're static).
+ params_1.push(constantPool.getConstLiteral(initialClasses, true));
+ }
+ else if (initialStyles || useSanitizer) {
+ // no point in having an extra `null` value unless there are follow-up params
+ params_1.push(NULL_EXPR);
+ }
+ if (initialStyles) {
+ // the template compiler handles initial style (e.g. style="foo") values
+ // in a special command called `elementStyle` so that the initial styles
+ // can be processed during runtime. These initial styles values are bound to
+ // a constant because the inital style values do not change (since they're static).
+ params_1.push(constantPool.getConstLiteral(initialStyles, true));
+ }
+ else if (useSanitizer || this._directiveIndexExpr) {
+ // no point in having an extra `null` value unless there are follow-up params
+ params_1.push(NULL_EXPR);
+ }
+ if (useSanitizer || this._directiveIndexExpr) {
+ params_1.push(useSanitizer ? importExpr(Identifiers$1.defaultStyleSanitizer) : NULL_EXPR);
+ if (this._directiveIndexExpr) {
+ params_1.push(this._directiveIndexExpr);
}
- else {
- var id = idAttr.value;
- if (this._msgIdToHtml.hasOwnProperty(id)) {
- this._addError(element, "Duplicated translations for msg " + id);
+ }
+ return { sourceSpan: sourceSpan, reference: Identifiers$1.elementStyling, buildParams: function () { return params_1; } };
+ }
+ return null;
+ };
+ StylingBuilder.prototype._buildStylingMap = function (valueConverter) {
+ var _this = this;
+ if (this._classMapInput || this._styleMapInput) {
+ var stylingInput = this._classMapInput || this._styleMapInput;
+ // these values must be outside of the update block so that they can
+ // be evaluted (the AST visit call) during creation time so that any
+ // pipes can be picked up in time before the template is built
+ var mapBasedClassValue_1 = this._classMapInput ? this._classMapInput.value.visit(valueConverter) : null;
+ var mapBasedStyleValue_1 = this._styleMapInput ? this._styleMapInput.value.visit(valueConverter) : null;
+ return {
+ sourceSpan: stylingInput.sourceSpan,
+ reference: Identifiers$1.elementStylingMap,
+ buildParams: function (convertFn) {
+ var params = [_this._elementIndexExpr];
+ if (mapBasedClassValue_1) {
+ params.push(convertFn(mapBasedClassValue_1));
}
- else {
- visitAll(this, element.children, null);
- if (typeof this._unitMlString === 'string') {
- this._msgIdToHtml[id] = this._unitMlString;
- }
- else {
- this._addError(element, "Message " + id + " misses a translation");
- }
+ else if (_this._styleMapInput) {
+ params.push(NULL_EXPR);
}
+ if (mapBasedStyleValue_1) {
+ params.push(convertFn(mapBasedStyleValue_1));
+ }
+ else if (_this._directiveIndexExpr) {
+ params.push(NULL_EXPR);
+ }
+ if (_this._directiveIndexExpr) {
+ params.push(_this._directiveIndexExpr);
+ }
+ return params;
}
- break;
- case _SOURCE_TAG$1:
- // ignore source message
- break;
- case _TARGET_TAG$1:
- var innerTextStart = element.startSourceSpan.end.offset;
- var innerTextEnd = element.endSourceSpan.start.offset;
- var content = element.startSourceSpan.start.file.content;
- var innerText = content.slice(innerTextStart, innerTextEnd);
- this._unitMlString = innerText;
- break;
- case _XLIFF_TAG:
- var localeAttr = element.attrs.find(function (attr) { return attr.name === 'trgLang'; });
- if (localeAttr) {
- this._locale = localeAttr.value;
- }
- var versionAttr = element.attrs.find(function (attr) { return attr.name === 'version'; });
- if (versionAttr) {
- var version = versionAttr.value;
- if (version !== '2.0') {
- this._addError(element, "The XLIFF file version " + version + " is not compatible with XLIFF 2.0 serializer");
+ };
+ }
+ return null;
+ };
+ StylingBuilder.prototype._buildSingleInputs = function (reference, inputs, mapIndex, allowUnits, valueConverter) {
+ var _this = this;
+ return inputs.map(function (input) {
+ var bindingIndex = mapIndex.get(input.name);
+ var value = input.value.visit(valueConverter);
+ return {
+ sourceSpan: input.sourceSpan,
+ reference: reference,
+ buildParams: function (convertFn) {
+ var params = [_this._elementIndexExpr, literal(bindingIndex), convertFn(value)];
+ if (allowUnits) {
+ if (input.unit) {
+ params.push(literal(input.unit));
+ }
+ else if (_this._directiveIndexExpr) {
+ params.push(NULL_EXPR);
+ }
}
- else {
- visitAll(this, element.children, null);
+ if (_this._directiveIndexExpr) {
+ params.push(_this._directiveIndexExpr);
}
+ return params;
}
- break;
- default:
- visitAll(this, element.children, null);
+ };
+ });
+ };
+ StylingBuilder.prototype._buildClassInputs = function (valueConverter) {
+ if (this._singleClassInputs) {
+ return this._buildSingleInputs(Identifiers$1.elementClassProp, this._singleClassInputs, this._classesIndex, false, valueConverter);
}
+ return [];
};
- Xliff2Parser.prototype.visitAttribute = function (attribute, context) { };
- Xliff2Parser.prototype.visitText = function (text, context) { };
- Xliff2Parser.prototype.visitComment = function (comment, context) { };
- Xliff2Parser.prototype.visitExpansion = function (expansion, context) { };
- Xliff2Parser.prototype.visitExpansionCase = function (expansionCase, context) { };
- Xliff2Parser.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
+ StylingBuilder.prototype._buildStyleInputs = function (valueConverter) {
+ if (this._singleStyleInputs) {
+ return this._buildSingleInputs(Identifiers$1.elementStyleProp, this._singleStyleInputs, this._stylesIndex, true, valueConverter);
+ }
+ return [];
};
- return Xliff2Parser;
-}());
-// Convert ml nodes (xliff syntax) to i18n nodes
-var XmlToI18n$1 = /** @class */ (function () {
- function XmlToI18n() {
- }
- XmlToI18n.prototype.convert = function (message, url) {
- var xmlIcu = new XmlParser().parse(message, url, true);
- this._errors = xmlIcu.errors;
- var i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?
- [] : [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(visitAll(this, xmlIcu.rootNodes)));
- return {
- i18nNodes: i18nNodes,
- errors: this._errors,
- };
- };
- XmlToI18n.prototype.visitText = function (text, context) { return new Text$1(text.value, text.sourceSpan); };
- XmlToI18n.prototype.visitElement = function (el, context) {
+ StylingBuilder.prototype._buildApplyFn = function () {
var _this = this;
- switch (el.name) {
- case _PLACEHOLDER_TAG$1:
- var nameAttr = el.attrs.find(function (attr) { return attr.name === 'equiv'; });
- if (nameAttr) {
- return [new Placeholder('', nameAttr.value, el.sourceSpan)];
- }
- this._addError(el, "<" + _PLACEHOLDER_TAG$1 + "> misses the \"equiv\" attribute");
- break;
- case _PLACEHOLDER_SPANNING_TAG:
- var startAttr = el.attrs.find(function (attr) { return attr.name === 'equivStart'; });
- var endAttr = el.attrs.find(function (attr) { return attr.name === 'equivEnd'; });
- if (!startAttr) {
- this._addError(el, "<" + _PLACEHOLDER_TAG$1 + "> misses the \"equivStart\" attribute");
- }
- else if (!endAttr) {
- this._addError(el, "<" + _PLACEHOLDER_TAG$1 + "> misses the \"equivEnd\" attribute");
- }
- else {
- var startId = startAttr.value;
- var endId = endAttr.value;
- var nodes = [];
- return nodes.concat.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([new Placeholder('', startId, el.sourceSpan)], el.children.map(function (node) { return node.visit(_this, null); }), [new Placeholder('', endId, el.sourceSpan)]));
- }
- break;
- case _MARKER_TAG$1:
- return [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(visitAll(this, el.children)));
- default:
- this._addError(el, "Unexpected tag");
- }
- return null;
- };
- XmlToI18n.prototype.visitExpansion = function (icu, context) {
- var caseMap = {};
- visitAll(this, icu.cases).forEach(function (c) {
- caseMap[c.value] = new Container(c.nodes, icu.sourceSpan);
- });
- return new Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);
- };
- XmlToI18n.prototype.visitExpansionCase = function (icuCase, context) {
return {
- value: icuCase.value,
- nodes: [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(visitAll(this, icuCase.expression))),
+ sourceSpan: this._lastStylingInput ? this._lastStylingInput.sourceSpan : null,
+ reference: Identifiers$1.elementStylingApply,
+ buildParams: function () {
+ var params = [_this._elementIndexExpr];
+ if (_this._directiveIndexExpr) {
+ params.push(_this._directiveIndexExpr);
+ }
+ return params;
+ }
};
};
- XmlToI18n.prototype.visitComment = function (comment, context) { };
- XmlToI18n.prototype.visitAttribute = function (attribute, context) { };
- XmlToI18n.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
+ StylingBuilder.prototype.buildUpdateLevelInstructions = function (valueConverter) {
+ var instructions = [];
+ if (this.hasBindingsOrInitialValues) {
+ var mapInstruction = this._buildStylingMap(valueConverter);
+ if (mapInstruction) {
+ instructions.push(mapInstruction);
+ }
+ instructions.push.apply(instructions, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(this._buildStyleInputs(valueConverter)));
+ instructions.push.apply(instructions, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(this._buildClassInputs(valueConverter)));
+ if (this._applyFnRequired) {
+ instructions.push(this._buildApplyFn());
+ }
+ }
+ return instructions;
};
- return XmlToI18n;
+ return StylingBuilder;
}());
-function getTypeForTag(tag) {
- switch (tag.toLowerCase()) {
- case 'br':
- case 'b':
- case 'i':
- case 'u':
- return 'fmt';
- case 'img':
- return 'image';
- case 'a':
- return 'link';
- default:
- return 'other';
+function isClassBinding(name) {
+ return name == 'className' || name == 'class';
+}
+function registerIntoMap(map, key) {
+ if (!map.has(key)) {
+ map.set(key, map.size);
}
}
+function isStyleSanitizable(prop) {
+ return prop === 'background-image' || prop === 'background' || prop === 'border-image' ||
+ prop === 'filter' || prop === 'list-style' || prop === 'list-style-image';
+}
/**
* @license
@@ -13208,133 +15064,349 @@ function getTypeForTag(tag) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var _MESSAGES_TAG = 'messagebundle';
-var _MESSAGE_TAG = 'msg';
-var _PLACEHOLDER_TAG$2 = 'ph';
-var _EXEMPLE_TAG = 'ex';
-var _SOURCE_TAG$2 = 'source';
-var _DOCTYPE = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
-var Xmb = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(Xmb, _super);
- function Xmb() {
- return _super !== null && _super.apply(this, arguments) || this;
+var TokenType;
+(function (TokenType) {
+ TokenType[TokenType["Character"] = 0] = "Character";
+ TokenType[TokenType["Identifier"] = 1] = "Identifier";
+ TokenType[TokenType["Keyword"] = 2] = "Keyword";
+ TokenType[TokenType["String"] = 3] = "String";
+ TokenType[TokenType["Operator"] = 4] = "Operator";
+ TokenType[TokenType["Number"] = 5] = "Number";
+ TokenType[TokenType["Error"] = 6] = "Error";
+})(TokenType || (TokenType = {}));
+var KEYWORDS = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];
+var Lexer = /** @class */ (function () {
+ function Lexer() {
}
- Xmb.prototype.write = function (messages, locale) {
- var exampleVisitor = new ExampleVisitor();
- var visitor = new _Visitor$2();
- var rootNode = new Tag(_MESSAGES_TAG);
- messages.forEach(function (message) {
- var attrs = { id: message.id };
- if (message.description) {
- attrs['desc'] = message.description;
- }
- if (message.meaning) {
- attrs['meaning'] = message.meaning;
- }
- var sourceTags = [];
- message.sources.forEach(function (source) {
- sourceTags.push(new Tag(_SOURCE_TAG$2, {}, [
- new Text$2(source.filePath + ":" + source.startLine + (source.endLine !== source.startLine ? ',' + source.endLine : ''))
- ]));
- });
- rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(sourceTags, visitor.serialize(message.nodes))));
- });
- rootNode.children.push(new CR());
- return serialize([
- new Declaration({ version: '1.0', encoding: 'UTF-8' }),
- new CR(),
- new Doctype(_MESSAGES_TAG, _DOCTYPE),
- new CR(),
- exampleVisitor.addDefaultExamples(rootNode),
- new CR(),
- ]);
+ Lexer.prototype.tokenize = function (text) {
+ var scanner = new _Scanner(text);
+ var tokens = [];
+ var token = scanner.scanToken();
+ while (token != null) {
+ tokens.push(token);
+ token = scanner.scanToken();
+ }
+ return tokens;
};
- Xmb.prototype.load = function (content, url) {
- throw new Error('Unsupported');
+ return Lexer;
+}());
+var Token = /** @class */ (function () {
+ function Token(index, type, numValue, strValue) {
+ this.index = index;
+ this.type = type;
+ this.numValue = numValue;
+ this.strValue = strValue;
+ }
+ Token.prototype.isCharacter = function (code) {
+ return this.type == TokenType.Character && this.numValue == code;
};
- Xmb.prototype.digest = function (message) { return digest$1(message); };
- Xmb.prototype.createNameMapper = function (message) {
- return new SimplePlaceholderMapper(message, toPublicName);
+ Token.prototype.isNumber = function () { return this.type == TokenType.Number; };
+ Token.prototype.isString = function () { return this.type == TokenType.String; };
+ Token.prototype.isOperator = function (operator) {
+ return this.type == TokenType.Operator && this.strValue == operator;
};
- return Xmb;
-}(Serializer));
-var _Visitor$2 = /** @class */ (function () {
- function _Visitor() {
- }
- _Visitor.prototype.visitText = function (text, context) { return [new Text$2(text.value)]; };
- _Visitor.prototype.visitContainer = function (container, context) {
- var _this = this;
- var nodes = [];
- container.children.forEach(function (node) { return nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(node.visit(_this))); });
- return nodes;
+ Token.prototype.isIdentifier = function () { return this.type == TokenType.Identifier; };
+ Token.prototype.isKeyword = function () { return this.type == TokenType.Keyword; };
+ Token.prototype.isKeywordLet = function () { return this.type == TokenType.Keyword && this.strValue == 'let'; };
+ Token.prototype.isKeywordAs = function () { return this.type == TokenType.Keyword && this.strValue == 'as'; };
+ Token.prototype.isKeywordNull = function () { return this.type == TokenType.Keyword && this.strValue == 'null'; };
+ Token.prototype.isKeywordUndefined = function () {
+ return this.type == TokenType.Keyword && this.strValue == 'undefined';
};
- _Visitor.prototype.visitIcu = function (icu, context) {
- var _this = this;
- var nodes = [new Text$2("{" + icu.expressionPlaceholder + ", " + icu.type + ", ")];
- Object.keys(icu.cases).forEach(function (c) {
- nodes.push.apply(nodes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([new Text$2(c + " {")], icu.cases[c].visit(_this), [new Text$2("} ")]));
- });
- nodes.push(new Text$2("}"));
- return nodes;
+ Token.prototype.isKeywordTrue = function () { return this.type == TokenType.Keyword && this.strValue == 'true'; };
+ Token.prototype.isKeywordFalse = function () { return this.type == TokenType.Keyword && this.strValue == 'false'; };
+ Token.prototype.isKeywordThis = function () { return this.type == TokenType.Keyword && this.strValue == 'this'; };
+ Token.prototype.isError = function () { return this.type == TokenType.Error; };
+ Token.prototype.toNumber = function () { return this.type == TokenType.Number ? this.numValue : -1; };
+ Token.prototype.toString = function () {
+ switch (this.type) {
+ case TokenType.Character:
+ case TokenType.Identifier:
+ case TokenType.Keyword:
+ case TokenType.Operator:
+ case TokenType.String:
+ case TokenType.Error:
+ return this.strValue;
+ case TokenType.Number:
+ return this.numValue.toString();
+ default:
+ return null;
+ }
};
- _Visitor.prototype.visitTagPlaceholder = function (ph, context) {
- var startEx = new Tag(_EXEMPLE_TAG, {}, [new Text$2("<" + ph.tag + ">")]);
- var startTagPh = new Tag(_PLACEHOLDER_TAG$2, { name: ph.startName }, [startEx]);
- if (ph.isVoid) {
- // void tags have no children nor closing tags
- return [startTagPh];
+ return Token;
+}());
+function newCharacterToken(index, code) {
+ return new Token(index, TokenType.Character, code, String.fromCharCode(code));
+}
+function newIdentifierToken(index, text) {
+ return new Token(index, TokenType.Identifier, 0, text);
+}
+function newKeywordToken(index, text) {
+ return new Token(index, TokenType.Keyword, 0, text);
+}
+function newOperatorToken(index, text) {
+ return new Token(index, TokenType.Operator, 0, text);
+}
+function newStringToken(index, text) {
+ return new Token(index, TokenType.String, 0, text);
+}
+function newNumberToken(index, n) {
+ return new Token(index, TokenType.Number, n, '');
+}
+function newErrorToken(index, message) {
+ return new Token(index, TokenType.Error, 0, message);
+}
+var EOF = new Token(-1, TokenType.Character, 0, '');
+var _Scanner = /** @class */ (function () {
+ function _Scanner(input) {
+ this.input = input;
+ this.peek = 0;
+ this.index = -1;
+ this.length = input.length;
+ this.advance();
+ }
+ _Scanner.prototype.advance = function () {
+ this.peek = ++this.index >= this.length ? $EOF : this.input.charCodeAt(this.index);
+ };
+ _Scanner.prototype.scanToken = function () {
+ var input = this.input, length = this.length;
+ var peek = this.peek, index = this.index;
+ // Skip whitespace.
+ while (peek <= $SPACE) {
+ if (++index >= length) {
+ peek = $EOF;
+ break;
+ }
+ else {
+ peek = input.charCodeAt(index);
+ }
}
- var closeEx = new Tag(_EXEMPLE_TAG, {}, [new Text$2("" + ph.tag + ">")]);
- var closeTagPh = new Tag(_PLACEHOLDER_TAG$2, { name: ph.closeName }, [closeEx]);
- return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])([startTagPh], this.serialize(ph.children), [closeTagPh]);
+ this.peek = peek;
+ this.index = index;
+ if (index >= length) {
+ return null;
+ }
+ // Handle identifiers and numbers.
+ if (isIdentifierStart(peek))
+ return this.scanIdentifier();
+ if (isDigit(peek))
+ return this.scanNumber(index);
+ var start = index;
+ switch (peek) {
+ case $PERIOD:
+ this.advance();
+ return isDigit(this.peek) ? this.scanNumber(start) :
+ newCharacterToken(start, $PERIOD);
+ case $LPAREN:
+ case $RPAREN:
+ case $LBRACE:
+ case $RBRACE:
+ case $LBRACKET:
+ case $RBRACKET:
+ case $COMMA:
+ case $COLON:
+ case $SEMICOLON:
+ return this.scanCharacter(start, peek);
+ case $SQ:
+ case $DQ:
+ return this.scanString();
+ case $HASH:
+ case $PLUS:
+ case $MINUS:
+ case $STAR:
+ case $SLASH:
+ case $PERCENT:
+ case $CARET:
+ return this.scanOperator(start, String.fromCharCode(peek));
+ case $QUESTION:
+ return this.scanComplexOperator(start, '?', $PERIOD, '.');
+ case $LT:
+ case $GT:
+ return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '=');
+ case $BANG:
+ case $EQ:
+ return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '=', $EQ, '=');
+ case $AMPERSAND:
+ return this.scanComplexOperator(start, '&', $AMPERSAND, '&');
+ case $BAR:
+ return this.scanComplexOperator(start, '|', $BAR, '|');
+ case $NBSP:
+ while (isWhitespace(this.peek))
+ this.advance();
+ return this.scanToken();
+ }
+ this.advance();
+ return this.error("Unexpected character [" + String.fromCharCode(peek) + "]", 0);
};
- _Visitor.prototype.visitPlaceholder = function (ph, context) {
- var exTag = new Tag(_EXEMPLE_TAG, {}, [new Text$2("{{" + ph.value + "}}")]);
- return [new Tag(_PLACEHOLDER_TAG$2, { name: ph.name }, [exTag])];
+ _Scanner.prototype.scanCharacter = function (start, code) {
+ this.advance();
+ return newCharacterToken(start, code);
};
- _Visitor.prototype.visitIcuPlaceholder = function (ph, context) {
- var exTag = new Tag(_EXEMPLE_TAG, {}, [
- new Text$2("{" + ph.value.expression + ", " + ph.value.type + ", " + Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ') + "}")
- ]);
- return [new Tag(_PLACEHOLDER_TAG$2, { name: ph.name }, [exTag])];
+ _Scanner.prototype.scanOperator = function (start, str) {
+ this.advance();
+ return newOperatorToken(start, str);
};
- _Visitor.prototype.serialize = function (nodes) {
- var _this = this;
- return [].concat.apply([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(nodes.map(function (node) { return node.visit(_this); })));
+ /**
+ * Tokenize a 2/3 char long operator
+ *
+ * @param start start index in the expression
+ * @param one first symbol (always part of the operator)
+ * @param twoCode code point for the second symbol
+ * @param two second symbol (part of the operator when the second code point matches)
+ * @param threeCode code point for the third symbol
+ * @param three third symbol (part of the operator when provided and matches source expression)
+ */
+ _Scanner.prototype.scanComplexOperator = function (start, one, twoCode, two, threeCode, three) {
+ this.advance();
+ var str = one;
+ if (this.peek == twoCode) {
+ this.advance();
+ str += two;
+ }
+ if (threeCode != null && this.peek == threeCode) {
+ this.advance();
+ str += three;
+ }
+ return newOperatorToken(start, str);
};
- return _Visitor;
-}());
-function digest$1(message) {
- return decimalDigest(message);
-}
-// TC requires at least one non-empty example on placeholders
-var ExampleVisitor = /** @class */ (function () {
- function ExampleVisitor() {
- }
- ExampleVisitor.prototype.addDefaultExamples = function (node) {
- node.visit(this);
- return node;
+ _Scanner.prototype.scanIdentifier = function () {
+ var start = this.index;
+ this.advance();
+ while (isIdentifierPart(this.peek))
+ this.advance();
+ var str = this.input.substring(start, this.index);
+ return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, str) :
+ newIdentifierToken(start, str);
};
- ExampleVisitor.prototype.visitTag = function (tag) {
- var _this = this;
- if (tag.name === _PLACEHOLDER_TAG$2) {
- if (!tag.children || tag.children.length == 0) {
- var exText = new Text$2(tag.attrs['name'] || '...');
- tag.children = [new Tag(_EXEMPLE_TAG, {}, [exText])];
+ _Scanner.prototype.scanNumber = function (start) {
+ var simple = (this.index === start);
+ this.advance(); // Skip initial digit.
+ while (true) {
+ if (isDigit(this.peek)) ;
+ else if (this.peek == $PERIOD) {
+ simple = false;
+ }
+ else if (isExponentStart(this.peek)) {
+ this.advance();
+ if (isExponentSign(this.peek))
+ this.advance();
+ if (!isDigit(this.peek))
+ return this.error('Invalid exponent', -1);
+ simple = false;
+ }
+ else {
+ break;
}
+ this.advance();
}
- else if (tag.children) {
- tag.children.forEach(function (node) { return node.visit(_this); });
+ var str = this.input.substring(start, this.index);
+ var value = simple ? parseIntAutoRadix(str) : parseFloat(str);
+ return newNumberToken(start, value);
+ };
+ _Scanner.prototype.scanString = function () {
+ var start = this.index;
+ var quote = this.peek;
+ this.advance(); // Skip initial quote.
+ var buffer = '';
+ var marker = this.index;
+ var input = this.input;
+ while (this.peek != quote) {
+ if (this.peek == $BACKSLASH) {
+ buffer += input.substring(marker, this.index);
+ this.advance();
+ var unescapedCode = void 0;
+ // Workaround for TS2.1-introduced type strictness
+ this.peek = this.peek;
+ if (this.peek == $u) {
+ // 4 character hex code for unicode character.
+ var hex = input.substring(this.index + 1, this.index + 5);
+ if (/^[0-9a-f]+$/i.test(hex)) {
+ unescapedCode = parseInt(hex, 16);
+ }
+ else {
+ return this.error("Invalid unicode escape [\\u" + hex + "]", 0);
+ }
+ for (var i = 0; i < 5; i++) {
+ this.advance();
+ }
+ }
+ else {
+ unescapedCode = unescape(this.peek);
+ this.advance();
+ }
+ buffer += String.fromCharCode(unescapedCode);
+ marker = this.index;
+ }
+ else if (this.peek == $EOF) {
+ return this.error('Unterminated quote', 0);
+ }
+ else {
+ this.advance();
+ }
}
+ var last = input.substring(marker, this.index);
+ this.advance(); // Skip terminating quote.
+ return newStringToken(start, buffer + last);
};
- ExampleVisitor.prototype.visitText = function (text) { };
- ExampleVisitor.prototype.visitDeclaration = function (decl) { };
- ExampleVisitor.prototype.visitDoctype = function (doctype) { };
- return ExampleVisitor;
+ _Scanner.prototype.error = function (message, offset) {
+ var position = this.index + offset;
+ return newErrorToken(position, "Lexer Error: " + message + " at column " + position + " in expression [" + this.input + "]");
+ };
+ return _Scanner;
}());
-// XMB/XTB placeholders can only contain A-Z, 0-9 and _
-function toPublicName(internalName) {
- return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
+function isIdentifierStart(code) {
+ return ($a <= code && code <= $z) || ($A <= code && code <= $Z) ||
+ (code == $_) || (code == $$);
+}
+function isIdentifier(input) {
+ if (input.length == 0)
+ return false;
+ var scanner = new _Scanner(input);
+ if (!isIdentifierStart(scanner.peek))
+ return false;
+ scanner.advance();
+ while (scanner.peek !== $EOF) {
+ if (!isIdentifierPart(scanner.peek))
+ return false;
+ scanner.advance();
+ }
+ return true;
+}
+function isIdentifierPart(code) {
+ return isAsciiLetter(code) || isDigit(code) || (code == $_) ||
+ (code == $$);
+}
+function isExponentStart(code) {
+ return code == $e || code == $E;
+}
+function isExponentSign(code) {
+ return code == $MINUS || code == $PLUS;
+}
+function isQuote(code) {
+ return code === $SQ || code === $DQ || code === $BT;
+}
+function unescape(code) {
+ switch (code) {
+ case $n:
+ return $LF;
+ case $f:
+ return $FF;
+ case $r:
+ return $CR;
+ case $t:
+ return $TAB;
+ case $v:
+ return $VTAB;
+ default:
+ return code;
+ }
+}
+function parseIntAutoRadix(text) {
+ var result = parseInt(text);
+ if (isNaN(result)) {
+ throw new Error('Invalid integer literal when parsing ' + text);
+ }
+ return result;
}
/**
@@ -13344,173 +15416,41 @@ function toPublicName(internalName) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var _TRANSLATIONS_TAG = 'translationbundle';
-var _TRANSLATION_TAG = 'translation';
-var _PLACEHOLDER_TAG$3 = 'ph';
-var Xtb = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(Xtb, _super);
- function Xtb() {
- return _super !== null && _super.apply(this, arguments) || this;
+function assertArrayOfStrings(identifier, value) {
+ if (value == null) {
+ return;
}
- Xtb.prototype.write = function (messages, locale) { throw new Error('Unsupported'); };
- Xtb.prototype.load = function (content, url) {
- // xtb to xml nodes
- var xtbParser = new XtbParser();
- var _a = xtbParser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;
- // xml nodes to i18n nodes
- var i18nNodesByMsgId = {};
- var converter = new XmlToI18n$2();
- // Because we should be able to load xtb files that rely on features not supported by angular,
- // we need to delay the conversion of html to i18n nodes so that non angular messages are not
- // converted
- Object.keys(msgIdToHtml).forEach(function (msgId) {
- var valueFn = function () {
- var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, errors = _a.errors;
- if (errors.length) {
- throw new Error("xtb parse errors:\n" + errors.join('\n'));
- }
- return i18nNodes;
- };
- createLazyProperty(i18nNodesByMsgId, msgId, valueFn);
- });
- if (errors.length) {
- throw new Error("xtb parse errors:\n" + errors.join('\n'));
- }
- return { locale: locale, i18nNodesByMsgId: i18nNodesByMsgId };
- };
- Xtb.prototype.digest = function (message) { return digest$1(message); };
- Xtb.prototype.createNameMapper = function (message) {
- return new SimplePlaceholderMapper(message, toPublicName);
- };
- return Xtb;
-}(Serializer));
-function createLazyProperty(messages, id, valueFn) {
- Object.defineProperty(messages, id, {
- configurable: true,
- enumerable: true,
- get: function () {
- var value = valueFn();
- Object.defineProperty(messages, id, { enumerable: true, value: value });
- return value;
- },
- set: function (_) { throw new Error('Could not overwrite an XTB translation'); },
- });
-}
-// Extract messages as xml nodes from the xtb file
-var XtbParser = /** @class */ (function () {
- function XtbParser() {
- this._locale = null;
+ if (!Array.isArray(value)) {
+ throw new Error("Expected '" + identifier + "' to be an array of strings.");
}
- XtbParser.prototype.parse = function (xtb, url) {
- this._bundleDepth = 0;
- this._msgIdToHtml = {};
- // We can not parse the ICU messages at this point as some messages might not originate
- // from Angular that could not be lex'd.
- var xml = new XmlParser().parse(xtb, url, false);
- this._errors = xml.errors;
- visitAll(this, xml.rootNodes);
- return {
- msgIdToHtml: this._msgIdToHtml,
- errors: this._errors,
- locale: this._locale,
- };
- };
- XtbParser.prototype.visitElement = function (element, context) {
- switch (element.name) {
- case _TRANSLATIONS_TAG:
- this._bundleDepth++;
- if (this._bundleDepth > 1) {
- this._addError(element, "<" + _TRANSLATIONS_TAG + "> elements can not be nested");
- }
- var langAttr = element.attrs.find(function (attr) { return attr.name === 'lang'; });
- if (langAttr) {
- this._locale = langAttr.value;
- }
- visitAll(this, element.children, null);
- this._bundleDepth--;
- break;
- case _TRANSLATION_TAG:
- var idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });
- if (!idAttr) {
- this._addError(element, "<" + _TRANSLATION_TAG + "> misses the \"id\" attribute");
- }
- else {
- var id = idAttr.value;
- if (this._msgIdToHtml.hasOwnProperty(id)) {
- this._addError(element, "Duplicated translations for msg " + id);
- }
- else {
- var innerTextStart = element.startSourceSpan.end.offset;
- var innerTextEnd = element.endSourceSpan.start.offset;
- var content = element.startSourceSpan.start.file.content;
- var innerText = content.slice(innerTextStart, innerTextEnd);
- this._msgIdToHtml[id] = innerText;
- }
- }
- break;
- default:
- this._addError(element, 'Unexpected tag');
+ for (var i = 0; i < value.length; i += 1) {
+ if (typeof value[i] !== 'string') {
+ throw new Error("Expected '" + identifier + "' to be an array of strings.");
}
- };
- XtbParser.prototype.visitAttribute = function (attribute, context) { };
- XtbParser.prototype.visitText = function (text, context) { };
- XtbParser.prototype.visitComment = function (comment, context) { };
- XtbParser.prototype.visitExpansion = function (expansion, context) { };
- XtbParser.prototype.visitExpansionCase = function (expansionCase, context) { };
- XtbParser.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
- };
- return XtbParser;
-}());
-// Convert ml nodes (xtb syntax) to i18n nodes
-var XmlToI18n$2 = /** @class */ (function () {
- function XmlToI18n() {
}
- XmlToI18n.prototype.convert = function (message, url) {
- var xmlIcu = new XmlParser().parse(message, url, true);
- this._errors = xmlIcu.errors;
- var i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?
- [] :
- visitAll(this, xmlIcu.rootNodes);
- return {
- i18nNodes: i18nNodes,
- errors: this._errors,
- };
- };
- XmlToI18n.prototype.visitText = function (text, context) { return new Text$1(text.value, text.sourceSpan); };
- XmlToI18n.prototype.visitExpansion = function (icu, context) {
- var caseMap = {};
- visitAll(this, icu.cases).forEach(function (c) {
- caseMap[c.value] = new Container(c.nodes, icu.sourceSpan);
- });
- return new Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);
- };
- XmlToI18n.prototype.visitExpansionCase = function (icuCase, context) {
- return {
- value: icuCase.value,
- nodes: visitAll(this, icuCase.expression),
- };
- };
- XmlToI18n.prototype.visitElement = function (el, context) {
- if (el.name === _PLACEHOLDER_TAG$3) {
- var nameAttr = el.attrs.find(function (attr) { return attr.name === 'name'; });
- if (nameAttr) {
- return new Placeholder('', nameAttr.value, el.sourceSpan);
+}
+var INTERPOLATION_BLACKLIST_REGEXPS = [
+ /^\s*$/,
+ /[<>]/,
+ /^[{}]$/,
+ /&(#|[a-z])/i,
+ /^\/\//,
+];
+function assertInterpolationSymbols(identifier, value) {
+ if (value != null && !(Array.isArray(value) && value.length == 2)) {
+ throw new Error("Expected '" + identifier + "' to be an array, [start, end].");
+ }
+ else if (value != null) {
+ var start_1 = value[0];
+ var end_1 = value[1];
+ // black list checking
+ INTERPOLATION_BLACKLIST_REGEXPS.forEach(function (regexp) {
+ if (regexp.test(start_1) || regexp.test(end_1)) {
+ throw new Error("['" + start_1 + "', '" + end_1 + "'] contains unusable interpolation symbol.");
}
- this._addError(el, "<" + _PLACEHOLDER_TAG$3 + "> misses the \"name\" attribute");
- }
- else {
- this._addError(el, "Unexpected tag");
- }
- return null;
- };
- XmlToI18n.prototype.visitComment = function (comment, context) { };
- XmlToI18n.prototype.visitAttribute = function (attribute, context) { };
- XmlToI18n.prototype._addError = function (node, message) {
- this._errors.push(new I18nError(node.sourceSpan, message));
- };
- return XmlToI18n;
-}());
+ });
+ }
+}
/**
* @license
@@ -13519,18 +15459,21 @@ var XmlToI18n$2 = /** @class */ (function () {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var HtmlParser = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(HtmlParser, _super);
- function HtmlParser() {
- return _super.call(this, getHtmlTagDefinition) || this;
+var InterpolationConfig = /** @class */ (function () {
+ function InterpolationConfig(start, end) {
+ this.start = start;
+ this.end = end;
}
- HtmlParser.prototype.parse = function (source, url, parseExpansionForms, interpolationConfig) {
- if (parseExpansionForms === void 0) { parseExpansionForms = false; }
- if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
- return _super.prototype.parse.call(this, source, url, parseExpansionForms, interpolationConfig);
+ InterpolationConfig.fromArray = function (markers) {
+ if (!markers) {
+ return DEFAULT_INTERPOLATION_CONFIG;
+ }
+ assertInterpolationSymbols('interpolation', markers);
+ return new InterpolationConfig(markers[0], markers[1]);
};
- return HtmlParser;
-}(Parser$1));
+ return InterpolationConfig;
+}());
+var DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}');
/**
* @license
@@ -13539,1672 +15482,1614 @@ var HtmlParser = /** @class */ (function (_super) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-/**
- * A container for translated messages
- */
-var TranslationBundle = /** @class */ (function () {
- function TranslationBundle(_i18nNodesByMsgId, locale, digest, mapperFactory, missingTranslationStrategy, console) {
- if (_i18nNodesByMsgId === void 0) { _i18nNodesByMsgId = {}; }
- if (missingTranslationStrategy === void 0) { missingTranslationStrategy = MissingTranslationStrategy.Warning; }
- this._i18nNodesByMsgId = _i18nNodesByMsgId;
- this.digest = digest;
- this.mapperFactory = mapperFactory;
- this._i18nToHtml = new I18nToHtmlVisitor(_i18nNodesByMsgId, locale, digest, mapperFactory, missingTranslationStrategy, console);
+var SplitInterpolation = /** @class */ (function () {
+ function SplitInterpolation(strings, expressions, offsets) {
+ this.strings = strings;
+ this.expressions = expressions;
+ this.offsets = offsets;
}
- // Creates a `TranslationBundle` by parsing the given `content` with the `serializer`.
- TranslationBundle.load = function (content, url, serializer, missingTranslationStrategy, console) {
- var _a = serializer.load(content, url), locale = _a.locale, i18nNodesByMsgId = _a.i18nNodesByMsgId;
- var digestFn = function (m) { return serializer.digest(m); };
- var mapperFactory = function (m) { return serializer.createNameMapper(m); };
- return new TranslationBundle(i18nNodesByMsgId, locale, digestFn, mapperFactory, missingTranslationStrategy, console);
- };
- // Returns the translation as HTML nodes from the given source message.
- TranslationBundle.prototype.get = function (srcMsg) {
- var html = this._i18nToHtml.convert(srcMsg);
- if (html.errors.length) {
- throw new Error(html.errors.join('\n'));
- }
- return html.nodes;
- };
- TranslationBundle.prototype.has = function (srcMsg) { return this.digest(srcMsg) in this._i18nNodesByMsgId; };
- return TranslationBundle;
+ return SplitInterpolation;
}());
-var I18nToHtmlVisitor = /** @class */ (function () {
- function I18nToHtmlVisitor(_i18nNodesByMsgId, _locale, _digest, _mapperFactory, _missingTranslationStrategy, _console) {
- if (_i18nNodesByMsgId === void 0) { _i18nNodesByMsgId = {}; }
- this._i18nNodesByMsgId = _i18nNodesByMsgId;
- this._locale = _locale;
- this._digest = _digest;
- this._mapperFactory = _mapperFactory;
- this._missingTranslationStrategy = _missingTranslationStrategy;
- this._console = _console;
- this._contextStack = [];
- this._errors = [];
+var TemplateBindingParseResult = /** @class */ (function () {
+ function TemplateBindingParseResult(templateBindings, warnings, errors) {
+ this.templateBindings = templateBindings;
+ this.warnings = warnings;
+ this.errors = errors;
}
- I18nToHtmlVisitor.prototype.convert = function (srcMsg) {
- this._contextStack.length = 0;
- this._errors.length = 0;
- // i18n to text
- var text = this._convertToText(srcMsg);
- // text to html
- var url = srcMsg.nodes[0].sourceSpan.start.file.url;
- var html = new HtmlParser().parse(text, url, true);
- return {
- nodes: html.rootNodes,
- errors: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(this._errors, html.errors),
- };
+ return TemplateBindingParseResult;
+}());
+function _createInterpolateRegExp(config) {
+ var pattern = escapeRegExp(config.start) + '([\\s\\S]*?)' + escapeRegExp(config.end);
+ return new RegExp(pattern, 'g');
+}
+var Parser = /** @class */ (function () {
+ function Parser(_lexer) {
+ this._lexer = _lexer;
+ this.errors = [];
+ }
+ Parser.prototype.parseAction = function (input, location, interpolationConfig) {
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ this._checkNoInterpolation(input, location, interpolationConfig);
+ var sourceToLex = this._stripComments(input);
+ var tokens = this._lexer.tokenize(this._stripComments(input));
+ var ast = new _ParseAST(input, location, tokens, sourceToLex.length, true, this.errors, input.length - sourceToLex.length)
+ .parseChain();
+ return new ASTWithSource(ast, input, location, this.errors);
};
- I18nToHtmlVisitor.prototype.visitText = function (text, context) {
- // `convert()` uses an `HtmlParser` to return `html.Node`s
- // we should then make sure that any special characters are escaped
- return escapeXml(text.value);
+ Parser.prototype.parseBinding = function (input, location, interpolationConfig) {
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ var ast = this._parseBindingAst(input, location, interpolationConfig);
+ return new ASTWithSource(ast, input, location, this.errors);
};
- I18nToHtmlVisitor.prototype.visitContainer = function (container, context) {
- var _this = this;
- return container.children.map(function (n) { return n.visit(_this); }).join('');
+ Parser.prototype.parseSimpleBinding = function (input, location, interpolationConfig) {
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ var ast = this._parseBindingAst(input, location, interpolationConfig);
+ var errors = SimpleExpressionChecker.check(ast);
+ if (errors.length > 0) {
+ this._reportError("Host binding expression cannot contain " + errors.join(' '), input, location);
+ }
+ return new ASTWithSource(ast, input, location, this.errors);
};
- I18nToHtmlVisitor.prototype.visitIcu = function (icu, context) {
- var _this = this;
- var cases = Object.keys(icu.cases).map(function (k) { return k + " {" + icu.cases[k].visit(_this) + "}"; });
- // TODO(vicb): Once all format switch to using expression placeholders
- // we should throw when the placeholder is not in the source message
- var exp = this._srcMsg.placeholders.hasOwnProperty(icu.expression) ?
- this._srcMsg.placeholders[icu.expression] :
- icu.expression;
- return "{" + exp + ", " + icu.type + ", " + cases.join(' ') + "}";
+ Parser.prototype._reportError = function (message, input, errLocation, ctxLocation) {
+ this.errors.push(new ParserError(message, input, errLocation, ctxLocation));
};
- I18nToHtmlVisitor.prototype.visitPlaceholder = function (ph, context) {
- var phName = this._mapper(ph.name);
- if (this._srcMsg.placeholders.hasOwnProperty(phName)) {
- return this._srcMsg.placeholders[phName];
- }
- if (this._srcMsg.placeholderToMessage.hasOwnProperty(phName)) {
- return this._convertToText(this._srcMsg.placeholderToMessage[phName]);
+ Parser.prototype._parseBindingAst = function (input, location, interpolationConfig) {
+ // Quotes expressions use 3rd-party expression language. We don't want to use
+ // our lexer or parser for that, so we check for that ahead of time.
+ var quote = this._parseQuote(input, location);
+ if (quote != null) {
+ return quote;
}
- this._addError(ph, "Unknown placeholder \"" + ph.name + "\"");
- return '';
+ this._checkNoInterpolation(input, location, interpolationConfig);
+ var sourceToLex = this._stripComments(input);
+ var tokens = this._lexer.tokenize(sourceToLex);
+ return new _ParseAST(input, location, tokens, sourceToLex.length, false, this.errors, input.length - sourceToLex.length)
+ .parseChain();
};
- // Loaded message contains only placeholders (vs tag and icu placeholders).
- // However when a translation can not be found, we need to serialize the source message
- // which can contain tag placeholders
- I18nToHtmlVisitor.prototype.visitTagPlaceholder = function (ph, context) {
- var _this = this;
- var tag = "" + ph.tag;
- var attrs = Object.keys(ph.attrs).map(function (name) { return name + "=\"" + ph.attrs[name] + "\""; }).join(' ');
- if (ph.isVoid) {
- return "<" + tag + " " + attrs + "/>";
- }
- var children = ph.children.map(function (c) { return c.visit(_this); }).join('');
- return "<" + tag + " " + attrs + ">" + children + "" + tag + ">";
+ Parser.prototype._parseQuote = function (input, location) {
+ if (input == null)
+ return null;
+ var prefixSeparatorIndex = input.indexOf(':');
+ if (prefixSeparatorIndex == -1)
+ return null;
+ var prefix = input.substring(0, prefixSeparatorIndex).trim();
+ if (!isIdentifier(prefix))
+ return null;
+ var uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);
+ return new Quote(new ParseSpan(0, input.length), prefix, uninterpretedExpression, location);
};
- // Loaded message contains only placeholders (vs tag and icu placeholders).
- // However when a translation can not be found, we need to serialize the source message
- // which can contain tag placeholders
- I18nToHtmlVisitor.prototype.visitIcuPlaceholder = function (ph, context) {
- // An ICU placeholder references the source message to be serialized
- return this._convertToText(this._srcMsg.placeholderToMessage[ph.name]);
+ Parser.prototype.parseTemplateBindings = function (tplKey, tplValue, location) {
+ var tokens = this._lexer.tokenize(tplValue);
+ return new _ParseAST(tplValue, location, tokens, tplValue.length, false, this.errors, 0)
+ .parseTemplateBindings(tplKey);
};
- /**
- * Convert a source message to a translated text string:
- * - text nodes are replaced with their translation,
- * - placeholders are replaced with their content,
- * - ICU nodes are converted to ICU expressions.
- */
- I18nToHtmlVisitor.prototype._convertToText = function (srcMsg) {
- var _this = this;
- var id = this._digest(srcMsg);
- var mapper = this._mapperFactory ? this._mapperFactory(srcMsg) : null;
- var nodes;
- this._contextStack.push({ msg: this._srcMsg, mapper: this._mapper });
- this._srcMsg = srcMsg;
- if (this._i18nNodesByMsgId.hasOwnProperty(id)) {
- // When there is a translation use its nodes as the source
- // And create a mapper to convert serialized placeholder names to internal names
- nodes = this._i18nNodesByMsgId[id];
- this._mapper = function (name) { return mapper ? mapper.toInternalName(name) : name; };
+ Parser.prototype.parseInterpolation = function (input, location, interpolationConfig) {
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ var split = this.splitInterpolation(input, location, interpolationConfig);
+ if (split == null)
+ return null;
+ var expressions = [];
+ for (var i = 0; i < split.expressions.length; ++i) {
+ var expressionText = split.expressions[i];
+ var sourceToLex = this._stripComments(expressionText);
+ var tokens = this._lexer.tokenize(sourceToLex);
+ var ast = new _ParseAST(input, location, tokens, sourceToLex.length, false, this.errors, split.offsets[i] + (expressionText.length - sourceToLex.length))
+ .parseChain();
+ expressions.push(ast);
}
- else {
- // When no translation has been found
- // - report an error / a warning / nothing,
- // - use the nodes from the original message
- // - placeholders are already internal and need no mapper
- if (this._missingTranslationStrategy === MissingTranslationStrategy.Error) {
- var ctx = this._locale ? " for locale \"" + this._locale + "\"" : '';
- this._addError(srcMsg.nodes[0], "Missing translation for message \"" + id + "\"" + ctx);
+ return new ASTWithSource(new Interpolation(new ParseSpan(0, input == null ? 0 : input.length), split.strings, expressions), input, location, this.errors);
+ };
+ Parser.prototype.splitInterpolation = function (input, location, interpolationConfig) {
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ var regexp = _createInterpolateRegExp(interpolationConfig);
+ var parts = input.split(regexp);
+ if (parts.length <= 1) {
+ return null;
+ }
+ var strings = [];
+ var expressions = [];
+ var offsets = [];
+ var offset = 0;
+ for (var i = 0; i < parts.length; i++) {
+ var part = parts[i];
+ if (i % 2 === 0) {
+ // fixed string
+ strings.push(part);
+ offset += part.length;
}
- else if (this._console &&
- this._missingTranslationStrategy === MissingTranslationStrategy.Warning) {
- var ctx = this._locale ? " for locale \"" + this._locale + "\"" : '';
- this._console.warn("Missing translation for message \"" + id + "\"" + ctx);
+ else if (part.trim().length > 0) {
+ offset += interpolationConfig.start.length;
+ expressions.push(part);
+ offsets.push(offset);
+ offset += part.length + interpolationConfig.end.length;
+ }
+ else {
+ this._reportError('Blank expressions are not allowed in interpolated strings', input, "at column " + this._findInterpolationErrorColumn(parts, i, interpolationConfig) + " in", location);
+ expressions.push('$implict');
+ offsets.push(offset);
}
- nodes = srcMsg.nodes;
- this._mapper = function (name) { return name; };
}
- var text = nodes.map(function (node) { return node.visit(_this); }).join('');
- var context = this._contextStack.pop();
- this._srcMsg = context.msg;
- this._mapper = context.mapper;
- return text;
+ return new SplitInterpolation(strings, expressions, offsets);
};
- I18nToHtmlVisitor.prototype._addError = function (el, msg) {
- this._errors.push(new I18nError(el.sourceSpan, msg));
+ Parser.prototype.wrapLiteralPrimitive = function (input, location) {
+ return new ASTWithSource(new LiteralPrimitive(new ParseSpan(0, input == null ? 0 : input.length), input), input, location, this.errors);
};
- return I18nToHtmlVisitor;
-}());
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-var I18NHtmlParser = /** @class */ (function () {
- function I18NHtmlParser(_htmlParser, translations, translationsFormat, missingTranslation, console) {
- if (missingTranslation === void 0) { missingTranslation = MissingTranslationStrategy.Warning; }
- this._htmlParser = _htmlParser;
- if (translations) {
- var serializer = createSerializer(translationsFormat);
- this._translationBundle =
- TranslationBundle.load(translations, 'i18n', serializer, missingTranslation, console);
+ Parser.prototype._stripComments = function (input) {
+ var i = this._commentStart(input);
+ return i != null ? input.substring(0, i).trim() : input;
+ };
+ Parser.prototype._commentStart = function (input) {
+ var outerQuote = null;
+ for (var i = 0; i < input.length - 1; i++) {
+ var char = input.charCodeAt(i);
+ var nextChar = input.charCodeAt(i + 1);
+ if (char === $SLASH && nextChar == $SLASH && outerQuote == null)
+ return i;
+ if (outerQuote === char) {
+ outerQuote = null;
+ }
+ else if (outerQuote == null && isQuote(char)) {
+ outerQuote = char;
+ }
}
- else {
- this._translationBundle =
- new TranslationBundle({}, null, digest, undefined, missingTranslation, console);
+ return null;
+ };
+ Parser.prototype._checkNoInterpolation = function (input, location, interpolationConfig) {
+ var regexp = _createInterpolateRegExp(interpolationConfig);
+ var parts = input.split(regexp);
+ if (parts.length > 1) {
+ this._reportError("Got interpolation (" + interpolationConfig.start + interpolationConfig.end + ") where expression was expected", input, "at column " + this._findInterpolationErrorColumn(parts, 1, interpolationConfig) + " in", location);
}
- }
- I18NHtmlParser.prototype.parse = function (source, url, parseExpansionForms, interpolationConfig) {
- if (parseExpansionForms === void 0) { parseExpansionForms = false; }
- if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
- var parseResult = this._htmlParser.parse(source, url, parseExpansionForms, interpolationConfig);
- if (parseResult.errors.length) {
- return new ParseTreeResult(parseResult.rootNodes, parseResult.errors);
+ };
+ Parser.prototype._findInterpolationErrorColumn = function (parts, partInErrIdx, interpolationConfig) {
+ var errLocation = '';
+ for (var j = 0; j < partInErrIdx; j++) {
+ errLocation += j % 2 === 0 ?
+ parts[j] :
+ "" + interpolationConfig.start + parts[j] + interpolationConfig.end;
}
- return mergeTranslations(parseResult.rootNodes, this._translationBundle, interpolationConfig, [], {});
+ return errLocation.length;
};
- return I18NHtmlParser;
+ return Parser;
}());
-function createSerializer(format) {
- format = (format || 'xlf').toLowerCase();
- switch (format) {
- case 'xmb':
- return new Xmb();
- case 'xtb':
- return new Xtb();
- case 'xliff2':
- case 'xlf2':
- return new Xliff2();
- case 'xliff':
- case 'xlf':
- default:
- return new Xliff();
- }
-}
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-var CORE = '@angular/core';
-var Identifiers = /** @class */ (function () {
- function Identifiers() {
+var _ParseAST = /** @class */ (function () {
+ function _ParseAST(input, location, tokens, inputLength, parseAction, errors, offset) {
+ this.input = input;
+ this.location = location;
+ this.tokens = tokens;
+ this.inputLength = inputLength;
+ this.parseAction = parseAction;
+ this.errors = errors;
+ this.offset = offset;
+ this.rparensExpected = 0;
+ this.rbracketsExpected = 0;
+ this.rbracesExpected = 0;
+ this.index = 0;
}
- Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS = {
- name: 'ANALYZE_FOR_ENTRY_COMPONENTS',
- moduleName: CORE,
- };
- Identifiers.ElementRef = { name: 'ElementRef', moduleName: CORE };
- Identifiers.NgModuleRef = { name: 'NgModuleRef', moduleName: CORE };
- Identifiers.ViewContainerRef = { name: 'ViewContainerRef', moduleName: CORE };
- Identifiers.ChangeDetectorRef = {
- name: 'ChangeDetectorRef',
- moduleName: CORE,
- };
- Identifiers.QueryList = { name: 'QueryList', moduleName: CORE };
- Identifiers.TemplateRef = { name: 'TemplateRef', moduleName: CORE };
- Identifiers.CodegenComponentFactoryResolver = {
- name: 'ɵCodegenComponentFactoryResolver',
- moduleName: CORE,
- };
- Identifiers.ComponentFactoryResolver = {
- name: 'ComponentFactoryResolver',
- moduleName: CORE,
- };
- Identifiers.ComponentFactory = { name: 'ComponentFactory', moduleName: CORE };
- Identifiers.ComponentRef = { name: 'ComponentRef', moduleName: CORE };
- Identifiers.NgModuleFactory = { name: 'NgModuleFactory', moduleName: CORE };
- Identifiers.createModuleFactory = {
- name: 'ɵcmf',
- moduleName: CORE,
- };
- Identifiers.moduleDef = {
- name: 'ɵmod',
- moduleName: CORE,
- };
- Identifiers.moduleProviderDef = {
- name: 'ɵmpd',
- moduleName: CORE,
- };
- Identifiers.RegisterModuleFactoryFn = {
- name: 'ɵregisterModuleFactory',
- moduleName: CORE,
- };
- Identifiers.inject = { name: 'inject', moduleName: CORE };
- Identifiers.INJECTOR = { name: 'INJECTOR', moduleName: CORE };
- Identifiers.Injector = { name: 'Injector', moduleName: CORE };
- Identifiers.defineInjectable = { name: 'defineInjectable', moduleName: CORE };
- Identifiers.ViewEncapsulation = {
- name: 'ViewEncapsulation',
- moduleName: CORE,
- };
- Identifiers.ChangeDetectionStrategy = {
- name: 'ChangeDetectionStrategy',
- moduleName: CORE,
- };
- Identifiers.SecurityContext = {
- name: 'SecurityContext',
- moduleName: CORE,
- };
- Identifiers.LOCALE_ID = { name: 'LOCALE_ID', moduleName: CORE };
- Identifiers.TRANSLATIONS_FORMAT = {
- name: 'TRANSLATIONS_FORMAT',
- moduleName: CORE,
- };
- Identifiers.inlineInterpolate = {
- name: 'ɵinlineInterpolate',
- moduleName: CORE,
- };
- Identifiers.interpolate = { name: 'ɵinterpolate', moduleName: CORE };
- Identifiers.EMPTY_ARRAY = { name: 'ɵEMPTY_ARRAY', moduleName: CORE };
- Identifiers.EMPTY_MAP = { name: 'ɵEMPTY_MAP', moduleName: CORE };
- Identifiers.Renderer = { name: 'Renderer', moduleName: CORE };
- Identifiers.viewDef = { name: 'ɵvid', moduleName: CORE };
- Identifiers.elementDef = { name: 'ɵeld', moduleName: CORE };
- Identifiers.anchorDef = { name: 'ɵand', moduleName: CORE };
- Identifiers.textDef = { name: 'ɵted', moduleName: CORE };
- Identifiers.directiveDef = { name: 'ɵdid', moduleName: CORE };
- Identifiers.providerDef = { name: 'ɵprd', moduleName: CORE };
- Identifiers.queryDef = { name: 'ɵqud', moduleName: CORE };
- Identifiers.pureArrayDef = { name: 'ɵpad', moduleName: CORE };
- Identifiers.pureObjectDef = { name: 'ɵpod', moduleName: CORE };
- Identifiers.purePipeDef = { name: 'ɵppd', moduleName: CORE };
- Identifiers.pipeDef = { name: 'ɵpid', moduleName: CORE };
- Identifiers.nodeValue = { name: 'ɵnov', moduleName: CORE };
- Identifiers.ngContentDef = { name: 'ɵncd', moduleName: CORE };
- Identifiers.unwrapValue = { name: 'ɵunv', moduleName: CORE };
- Identifiers.createRendererType2 = { name: 'ɵcrt', moduleName: CORE };
- // type only
- Identifiers.RendererType2 = {
- name: 'RendererType2',
- moduleName: CORE,
- };
- // type only
- Identifiers.ViewDefinition = {
- name: 'ɵViewDefinition',
- moduleName: CORE,
+ _ParseAST.prototype.peek = function (offset) {
+ var i = this.index + offset;
+ return i < this.tokens.length ? this.tokens[i] : EOF;
};
- Identifiers.createComponentFactory = { name: 'ɵccf', moduleName: CORE };
- return Identifiers;
-}());
-function createTokenForReference(reference) {
- return { identifier: { reference: reference } };
-}
-function createTokenForExternalReference(reflector, reference) {
- return createTokenForReference(reflector.resolveExternalReference(reference));
-}
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-//// Types
-var TypeModifier;
-(function (TypeModifier) {
- TypeModifier[TypeModifier["Const"] = 0] = "Const";
-})(TypeModifier || (TypeModifier = {}));
-var Type$1 = /** @class */ (function () {
- function Type(modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- this.modifiers = modifiers;
- if (!modifiers) {
- this.modifiers = [];
+ Object.defineProperty(_ParseAST.prototype, "next", {
+ get: function () { return this.peek(0); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(_ParseAST.prototype, "inputIndex", {
+ get: function () {
+ return (this.index < this.tokens.length) ? this.next.index + this.offset :
+ this.inputLength + this.offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ _ParseAST.prototype.span = function (start) { return new ParseSpan(start, this.inputIndex); };
+ _ParseAST.prototype.advance = function () { this.index++; };
+ _ParseAST.prototype.optionalCharacter = function (code) {
+ if (this.next.isCharacter(code)) {
+ this.advance();
+ return true;
+ }
+ else {
+ return false;
}
- }
- Type.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; };
- return Type;
-}());
-var BuiltinTypeName;
-(function (BuiltinTypeName) {
- BuiltinTypeName[BuiltinTypeName["Dynamic"] = 0] = "Dynamic";
- BuiltinTypeName[BuiltinTypeName["Bool"] = 1] = "Bool";
- BuiltinTypeName[BuiltinTypeName["String"] = 2] = "String";
- BuiltinTypeName[BuiltinTypeName["Int"] = 3] = "Int";
- BuiltinTypeName[BuiltinTypeName["Number"] = 4] = "Number";
- BuiltinTypeName[BuiltinTypeName["Function"] = 5] = "Function";
- BuiltinTypeName[BuiltinTypeName["Inferred"] = 6] = "Inferred";
-})(BuiltinTypeName || (BuiltinTypeName = {}));
-var BuiltinType = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(BuiltinType, _super);
- function BuiltinType(name, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers) || this;
- _this.name = name;
- return _this;
- }
- BuiltinType.prototype.visitType = function (visitor, context) {
- return visitor.visitBuiltinType(this, context);
- };
- return BuiltinType;
-}(Type$1));
-var ExpressionType = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ExpressionType, _super);
- function ExpressionType(value, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers) || this;
- _this.value = value;
- return _this;
- }
- ExpressionType.prototype.visitType = function (visitor, context) {
- return visitor.visitExpressionType(this, context);
};
- return ExpressionType;
-}(Type$1));
-var ArrayType = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ArrayType, _super);
- function ArrayType(of, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers) || this;
- _this.of = of;
- return _this;
- }
- ArrayType.prototype.visitType = function (visitor, context) {
- return visitor.visitArrayType(this, context);
+ _ParseAST.prototype.peekKeywordLet = function () { return this.next.isKeywordLet(); };
+ _ParseAST.prototype.peekKeywordAs = function () { return this.next.isKeywordAs(); };
+ _ParseAST.prototype.expectCharacter = function (code) {
+ if (this.optionalCharacter(code))
+ return;
+ this.error("Missing expected " + String.fromCharCode(code));
};
- return ArrayType;
-}(Type$1));
-var MapType = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(MapType, _super);
- function MapType(valueType, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers) || this;
- _this.valueType = valueType || null;
- return _this;
- }
- MapType.prototype.visitType = function (visitor, context) { return visitor.visitMapType(this, context); };
- return MapType;
-}(Type$1));
-var DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);
-var INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);
-var BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);
-var INT_TYPE = new BuiltinType(BuiltinTypeName.Int);
-var NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);
-var STRING_TYPE = new BuiltinType(BuiltinTypeName.String);
-var FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);
-///// Expressions
-var BinaryOperator;
-(function (BinaryOperator) {
- BinaryOperator[BinaryOperator["Equals"] = 0] = "Equals";
- BinaryOperator[BinaryOperator["NotEquals"] = 1] = "NotEquals";
- BinaryOperator[BinaryOperator["Identical"] = 2] = "Identical";
- BinaryOperator[BinaryOperator["NotIdentical"] = 3] = "NotIdentical";
- BinaryOperator[BinaryOperator["Minus"] = 4] = "Minus";
- BinaryOperator[BinaryOperator["Plus"] = 5] = "Plus";
- BinaryOperator[BinaryOperator["Divide"] = 6] = "Divide";
- BinaryOperator[BinaryOperator["Multiply"] = 7] = "Multiply";
- BinaryOperator[BinaryOperator["Modulo"] = 8] = "Modulo";
- BinaryOperator[BinaryOperator["And"] = 9] = "And";
- BinaryOperator[BinaryOperator["Or"] = 10] = "Or";
- BinaryOperator[BinaryOperator["BitwiseAnd"] = 11] = "BitwiseAnd";
- BinaryOperator[BinaryOperator["Lower"] = 12] = "Lower";
- BinaryOperator[BinaryOperator["LowerEquals"] = 13] = "LowerEquals";
- BinaryOperator[BinaryOperator["Bigger"] = 14] = "Bigger";
- BinaryOperator[BinaryOperator["BiggerEquals"] = 15] = "BiggerEquals";
-})(BinaryOperator || (BinaryOperator = {}));
-function nullSafeIsEquivalent(base, other) {
- if (base == null || other == null) {
- return base == other;
- }
- return base.isEquivalent(other);
-}
-function areAllEquivalent(base, other) {
- var len = base.length;
- if (len !== other.length) {
- return false;
- }
- for (var i = 0; i < len; i++) {
- if (!base[i].isEquivalent(other[i])) {
+ _ParseAST.prototype.optionalOperator = function (op) {
+ if (this.next.isOperator(op)) {
+ this.advance();
+ return true;
+ }
+ else {
return false;
}
- }
- return true;
-}
-var Expression = /** @class */ (function () {
- function Expression(type, sourceSpan) {
- this.type = type || null;
- this.sourceSpan = sourceSpan || null;
- }
- Expression.prototype.prop = function (name, sourceSpan) {
- return new ReadPropExpr(this, name, null, sourceSpan);
- };
- Expression.prototype.key = function (index, type, sourceSpan) {
- return new ReadKeyExpr(this, index, type, sourceSpan);
};
- Expression.prototype.callMethod = function (name, params, sourceSpan) {
- return new InvokeMethodExpr(this, name, params, null, sourceSpan);
+ _ParseAST.prototype.expectOperator = function (operator) {
+ if (this.optionalOperator(operator))
+ return;
+ this.error("Missing expected operator " + operator);
};
- Expression.prototype.callFn = function (params, sourceSpan) {
- return new InvokeFunctionExpr(this, params, null, sourceSpan);
+ _ParseAST.prototype.expectIdentifierOrKeyword = function () {
+ var n = this.next;
+ if (!n.isIdentifier() && !n.isKeyword()) {
+ this.error("Unexpected token " + n + ", expected identifier or keyword");
+ return '';
+ }
+ this.advance();
+ return n.toString();
};
- Expression.prototype.instantiate = function (params, type, sourceSpan) {
- return new InstantiateExpr(this, params, type, sourceSpan);
+ _ParseAST.prototype.expectIdentifierOrKeywordOrString = function () {
+ var n = this.next;
+ if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {
+ this.error("Unexpected token " + n + ", expected identifier, keyword, or string");
+ return '';
+ }
+ this.advance();
+ return n.toString();
};
- Expression.prototype.conditional = function (trueCase, falseCase, sourceSpan) {
- if (falseCase === void 0) { falseCase = null; }
- return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);
+ _ParseAST.prototype.parseChain = function () {
+ var exprs = [];
+ var start = this.inputIndex;
+ while (this.index < this.tokens.length) {
+ var expr = this.parsePipe();
+ exprs.push(expr);
+ if (this.optionalCharacter($SEMICOLON)) {
+ if (!this.parseAction) {
+ this.error('Binding expression cannot contain chained expression');
+ }
+ while (this.optionalCharacter($SEMICOLON)) {
+ } // read all semicolons
+ }
+ else if (this.index < this.tokens.length) {
+ this.error("Unexpected token '" + this.next + "'");
+ }
+ }
+ if (exprs.length == 0)
+ return new EmptyExpr(this.span(start));
+ if (exprs.length == 1)
+ return exprs[0];
+ return new Chain(this.span(start), exprs);
};
- Expression.prototype.equals = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parsePipe = function () {
+ var result = this.parseExpression();
+ if (this.optionalOperator('|')) {
+ if (this.parseAction) {
+ this.error('Cannot have a pipe in an action expression');
+ }
+ do {
+ var name_1 = this.expectIdentifierOrKeyword();
+ var args = [];
+ while (this.optionalCharacter($COLON)) {
+ args.push(this.parseExpression());
+ }
+ result = new BindingPipe(this.span(result.span.start), result, name_1, args);
+ } while (this.optionalOperator('|'));
+ }
+ return result;
};
- Expression.prototype.notEquals = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseExpression = function () { return this.parseConditional(); };
+ _ParseAST.prototype.parseConditional = function () {
+ var start = this.inputIndex;
+ var result = this.parseLogicalOr();
+ if (this.optionalOperator('?')) {
+ var yes = this.parsePipe();
+ var no = void 0;
+ if (!this.optionalCharacter($COLON)) {
+ var end = this.inputIndex;
+ var expression = this.input.substring(start, end);
+ this.error("Conditional expression " + expression + " requires all 3 expressions");
+ no = new EmptyExpr(this.span(start));
+ }
+ else {
+ no = this.parsePipe();
+ }
+ return new Conditional(this.span(start), result, yes, no);
+ }
+ else {
+ return result;
+ }
};
- Expression.prototype.identical = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseLogicalOr = function () {
+ // '||'
+ var result = this.parseLogicalAnd();
+ while (this.optionalOperator('||')) {
+ var right = this.parseLogicalAnd();
+ result = new Binary(this.span(result.span.start), '||', result, right);
+ }
+ return result;
};
- Expression.prototype.notIdentical = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseLogicalAnd = function () {
+ // '&&'
+ var result = this.parseEquality();
+ while (this.optionalOperator('&&')) {
+ var right = this.parseEquality();
+ result = new Binary(this.span(result.span.start), '&&', result, right);
+ }
+ return result;
};
- Expression.prototype.minus = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseEquality = function () {
+ // '==','!=','===','!=='
+ var result = this.parseRelational();
+ while (this.next.type == TokenType.Operator) {
+ var operator = this.next.strValue;
+ switch (operator) {
+ case '==':
+ case '===':
+ case '!=':
+ case '!==':
+ this.advance();
+ var right = this.parseRelational();
+ result = new Binary(this.span(result.span.start), operator, result, right);
+ continue;
+ }
+ break;
+ }
+ return result;
};
- Expression.prototype.plus = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseRelational = function () {
+ // '<', '>', '<=', '>='
+ var result = this.parseAdditive();
+ while (this.next.type == TokenType.Operator) {
+ var operator = this.next.strValue;
+ switch (operator) {
+ case '<':
+ case '>':
+ case '<=':
+ case '>=':
+ this.advance();
+ var right = this.parseAdditive();
+ result = new Binary(this.span(result.span.start), operator, result, right);
+ continue;
+ }
+ break;
+ }
+ return result;
};
- Expression.prototype.divide = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseAdditive = function () {
+ // '+', '-'
+ var result = this.parseMultiplicative();
+ while (this.next.type == TokenType.Operator) {
+ var operator = this.next.strValue;
+ switch (operator) {
+ case '+':
+ case '-':
+ this.advance();
+ var right = this.parseMultiplicative();
+ result = new Binary(this.span(result.span.start), operator, result, right);
+ continue;
+ }
+ break;
+ }
+ return result;
};
- Expression.prototype.multiply = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parseMultiplicative = function () {
+ // '*', '%', '/'
+ var result = this.parsePrefix();
+ while (this.next.type == TokenType.Operator) {
+ var operator = this.next.strValue;
+ switch (operator) {
+ case '*':
+ case '%':
+ case '/':
+ this.advance();
+ var right = this.parsePrefix();
+ result = new Binary(this.span(result.span.start), operator, result, right);
+ continue;
+ }
+ break;
+ }
+ return result;
};
- Expression.prototype.modulo = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);
+ _ParseAST.prototype.parsePrefix = function () {
+ if (this.next.type == TokenType.Operator) {
+ var start = this.inputIndex;
+ var operator = this.next.strValue;
+ var result = void 0;
+ switch (operator) {
+ case '+':
+ this.advance();
+ result = this.parsePrefix();
+ return new Binary(this.span(start), '-', result, new LiteralPrimitive(new ParseSpan(start, start), 0));
+ case '-':
+ this.advance();
+ result = this.parsePrefix();
+ return new Binary(this.span(start), operator, new LiteralPrimitive(new ParseSpan(start, start), 0), result);
+ case '!':
+ this.advance();
+ result = this.parsePrefix();
+ return new PrefixNot(this.span(start), result);
+ }
+ }
+ return this.parseCallChain();
};
- Expression.prototype.and = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);
- };
- Expression.prototype.bitwiseAnd = function (rhs, sourceSpan, parens) {
- if (parens === void 0) { parens = true; }
- return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);
- };
- Expression.prototype.or = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);
- };
- Expression.prototype.lower = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);
- };
- Expression.prototype.lowerEquals = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);
- };
- Expression.prototype.bigger = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);
- };
- Expression.prototype.biggerEquals = function (rhs, sourceSpan) {
- return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);
- };
- Expression.prototype.isBlank = function (sourceSpan) {
- // Note: We use equals by purpose here to compare to null and undefined in JS.
- // We use the typed null to allow strictNullChecks to narrow types.
- return this.equals(TYPED_NULL_EXPR, sourceSpan);
- };
- Expression.prototype.cast = function (type, sourceSpan) {
- return new CastExpr(this, type, sourceSpan);
+ _ParseAST.prototype.parseCallChain = function () {
+ var result = this.parsePrimary();
+ while (true) {
+ if (this.optionalCharacter($PERIOD)) {
+ result = this.parseAccessMemberOrMethodCall(result, false);
+ }
+ else if (this.optionalOperator('?.')) {
+ result = this.parseAccessMemberOrMethodCall(result, true);
+ }
+ else if (this.optionalCharacter($LBRACKET)) {
+ this.rbracketsExpected++;
+ var key = this.parsePipe();
+ this.rbracketsExpected--;
+ this.expectCharacter($RBRACKET);
+ if (this.optionalOperator('=')) {
+ var value = this.parseConditional();
+ result = new KeyedWrite(this.span(result.span.start), result, key, value);
+ }
+ else {
+ result = new KeyedRead(this.span(result.span.start), result, key);
+ }
+ }
+ else if (this.optionalCharacter($LPAREN)) {
+ this.rparensExpected++;
+ var args = this.parseCallArguments();
+ this.rparensExpected--;
+ this.expectCharacter($RPAREN);
+ result = new FunctionCall(this.span(result.span.start), result, args);
+ }
+ else if (this.optionalOperator('!')) {
+ result = new NonNullAssert(this.span(result.span.start), result);
+ }
+ else {
+ return result;
+ }
+ }
};
- Expression.prototype.toStmt = function () { return new ExpressionStatement(this, null); };
- return Expression;
-}());
-var BuiltinVar;
-(function (BuiltinVar) {
- BuiltinVar[BuiltinVar["This"] = 0] = "This";
- BuiltinVar[BuiltinVar["Super"] = 1] = "Super";
- BuiltinVar[BuiltinVar["CatchError"] = 2] = "CatchError";
- BuiltinVar[BuiltinVar["CatchStack"] = 3] = "CatchStack";
-})(BuiltinVar || (BuiltinVar = {}));
-var ReadVarExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ReadVarExpr, _super);
- function ReadVarExpr(name, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- if (typeof name === 'string') {
- _this.name = name;
- _this.builtin = null;
+ _ParseAST.prototype.parsePrimary = function () {
+ var start = this.inputIndex;
+ if (this.optionalCharacter($LPAREN)) {
+ this.rparensExpected++;
+ var result = this.parsePipe();
+ this.rparensExpected--;
+ this.expectCharacter($RPAREN);
+ return result;
+ }
+ else if (this.next.isKeywordNull()) {
+ this.advance();
+ return new LiteralPrimitive(this.span(start), null);
+ }
+ else if (this.next.isKeywordUndefined()) {
+ this.advance();
+ return new LiteralPrimitive(this.span(start), void 0);
+ }
+ else if (this.next.isKeywordTrue()) {
+ this.advance();
+ return new LiteralPrimitive(this.span(start), true);
+ }
+ else if (this.next.isKeywordFalse()) {
+ this.advance();
+ return new LiteralPrimitive(this.span(start), false);
+ }
+ else if (this.next.isKeywordThis()) {
+ this.advance();
+ return new ImplicitReceiver(this.span(start));
+ }
+ else if (this.optionalCharacter($LBRACKET)) {
+ this.rbracketsExpected++;
+ var elements = this.parseExpressionList($RBRACKET);
+ this.rbracketsExpected--;
+ this.expectCharacter($RBRACKET);
+ return new LiteralArray(this.span(start), elements);
+ }
+ else if (this.next.isCharacter($LBRACE)) {
+ return this.parseLiteralMap();
+ }
+ else if (this.next.isIdentifier()) {
+ return this.parseAccessMemberOrMethodCall(new ImplicitReceiver(this.span(start)), false);
+ }
+ else if (this.next.isNumber()) {
+ var value = this.next.toNumber();
+ this.advance();
+ return new LiteralPrimitive(this.span(start), value);
+ }
+ else if (this.next.isString()) {
+ var literalValue = this.next.toString();
+ this.advance();
+ return new LiteralPrimitive(this.span(start), literalValue);
+ }
+ else if (this.index >= this.tokens.length) {
+ this.error("Unexpected end of expression: " + this.input);
+ return new EmptyExpr(this.span(start));
}
else {
- _this.name = null;
- _this.builtin = name;
+ this.error("Unexpected token " + this.next);
+ return new EmptyExpr(this.span(start));
}
- return _this;
- }
- ReadVarExpr.prototype.isEquivalent = function (e) {
- return e instanceof ReadVarExpr && this.name === e.name && this.builtin === e.builtin;
- };
- ReadVarExpr.prototype.isConstant = function () { return false; };
- ReadVarExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitReadVarExpr(this, context);
};
- ReadVarExpr.prototype.set = function (value) {
- if (!this.name) {
- throw new Error("Built in variable " + this.builtin + " can not be assigned to.");
+ _ParseAST.prototype.parseExpressionList = function (terminator) {
+ var result = [];
+ if (!this.next.isCharacter(terminator)) {
+ do {
+ result.push(this.parsePipe());
+ } while (this.optionalCharacter($COMMA));
}
- return new WriteVarExpr(this.name, value, null, this.sourceSpan);
- };
- return ReadVarExpr;
-}(Expression));
-var WriteVarExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(WriteVarExpr, _super);
- function WriteVarExpr(name, value, type, sourceSpan) {
- var _this = _super.call(this, type || value.type, sourceSpan) || this;
- _this.name = name;
- _this.value = value;
- return _this;
- }
- WriteVarExpr.prototype.isEquivalent = function (e) {
- return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);
- };
- WriteVarExpr.prototype.isConstant = function () { return false; };
- WriteVarExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitWriteVarExpr(this, context);
- };
- WriteVarExpr.prototype.toDeclStmt = function (type, modifiers) {
- return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);
- };
- return WriteVarExpr;
-}(Expression));
-var WriteKeyExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(WriteKeyExpr, _super);
- function WriteKeyExpr(receiver, index, value, type, sourceSpan) {
- var _this = _super.call(this, type || value.type, sourceSpan) || this;
- _this.receiver = receiver;
- _this.index = index;
- _this.value = value;
- return _this;
- }
- WriteKeyExpr.prototype.isEquivalent = function (e) {
- return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&
- this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);
- };
- WriteKeyExpr.prototype.isConstant = function () { return false; };
- WriteKeyExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitWriteKeyExpr(this, context);
- };
- return WriteKeyExpr;
-}(Expression));
-var WritePropExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(WritePropExpr, _super);
- function WritePropExpr(receiver, name, value, type, sourceSpan) {
- var _this = _super.call(this, type || value.type, sourceSpan) || this;
- _this.receiver = receiver;
- _this.name = name;
- _this.value = value;
- return _this;
- }
- WritePropExpr.prototype.isEquivalent = function (e) {
- return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&
- this.name === e.name && this.value.isEquivalent(e.value);
+ return result;
};
- WritePropExpr.prototype.isConstant = function () { return false; };
- WritePropExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitWritePropExpr(this, context);
+ _ParseAST.prototype.parseLiteralMap = function () {
+ var keys = [];
+ var values = [];
+ var start = this.inputIndex;
+ this.expectCharacter($LBRACE);
+ if (!this.optionalCharacter($RBRACE)) {
+ this.rbracesExpected++;
+ do {
+ var quoted = this.next.isString();
+ var key = this.expectIdentifierOrKeywordOrString();
+ keys.push({ key: key, quoted: quoted });
+ this.expectCharacter($COLON);
+ values.push(this.parsePipe());
+ } while (this.optionalCharacter($COMMA));
+ this.rbracesExpected--;
+ this.expectCharacter($RBRACE);
+ }
+ return new LiteralMap(this.span(start), keys, values);
};
- return WritePropExpr;
-}(Expression));
-var BuiltinMethod;
-(function (BuiltinMethod) {
- BuiltinMethod[BuiltinMethod["ConcatArray"] = 0] = "ConcatArray";
- BuiltinMethod[BuiltinMethod["SubscribeObservable"] = 1] = "SubscribeObservable";
- BuiltinMethod[BuiltinMethod["Bind"] = 2] = "Bind";
-})(BuiltinMethod || (BuiltinMethod = {}));
-var InvokeMethodExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InvokeMethodExpr, _super);
- function InvokeMethodExpr(receiver, method, args, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.receiver = receiver;
- _this.args = args;
- if (typeof method === 'string') {
- _this.name = method;
- _this.builtin = null;
+ _ParseAST.prototype.parseAccessMemberOrMethodCall = function (receiver, isSafe) {
+ if (isSafe === void 0) { isSafe = false; }
+ var start = receiver.span.start;
+ var id = this.expectIdentifierOrKeyword();
+ if (this.optionalCharacter($LPAREN)) {
+ this.rparensExpected++;
+ var args = this.parseCallArguments();
+ this.expectCharacter($RPAREN);
+ this.rparensExpected--;
+ var span = this.span(start);
+ return isSafe ? new SafeMethodCall(span, receiver, id, args) :
+ new MethodCall(span, receiver, id, args);
}
else {
- _this.name = null;
- _this.builtin = method;
+ if (isSafe) {
+ if (this.optionalOperator('=')) {
+ this.error('The \'?.\' operator cannot be used in the assignment');
+ return new EmptyExpr(this.span(start));
+ }
+ else {
+ return new SafePropertyRead(this.span(start), receiver, id);
+ }
+ }
+ else {
+ if (this.optionalOperator('=')) {
+ if (!this.parseAction) {
+ this.error('Bindings cannot contain assignments');
+ return new EmptyExpr(this.span(start));
+ }
+ var value = this.parseConditional();
+ return new PropertyWrite(this.span(start), receiver, id, value);
+ }
+ else {
+ return new PropertyRead(this.span(start), receiver, id);
+ }
+ }
}
- return _this;
- }
- InvokeMethodExpr.prototype.isEquivalent = function (e) {
- return e instanceof InvokeMethodExpr && this.receiver.isEquivalent(e.receiver) &&
- this.name === e.name && this.builtin === e.builtin && areAllEquivalent(this.args, e.args);
- };
- InvokeMethodExpr.prototype.isConstant = function () { return false; };
- InvokeMethodExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitInvokeMethodExpr(this, context);
- };
- return InvokeMethodExpr;
-}(Expression));
-var InvokeFunctionExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InvokeFunctionExpr, _super);
- function InvokeFunctionExpr(fn, args, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.fn = fn;
- _this.args = args;
- return _this;
- }
- InvokeFunctionExpr.prototype.isEquivalent = function (e) {
- return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&
- areAllEquivalent(this.args, e.args);
- };
- InvokeFunctionExpr.prototype.isConstant = function () { return false; };
- InvokeFunctionExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitInvokeFunctionExpr(this, context);
};
- return InvokeFunctionExpr;
-}(Expression));
-var InstantiateExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InstantiateExpr, _super);
- function InstantiateExpr(classExpr, args, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.classExpr = classExpr;
- _this.args = args;
- return _this;
- }
- InstantiateExpr.prototype.isEquivalent = function (e) {
- return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&
- areAllEquivalent(this.args, e.args);
+ _ParseAST.prototype.parseCallArguments = function () {
+ if (this.next.isCharacter($RPAREN))
+ return [];
+ var positionals = [];
+ do {
+ positionals.push(this.parsePipe());
+ } while (this.optionalCharacter($COMMA));
+ return positionals;
};
- InstantiateExpr.prototype.isConstant = function () { return false; };
- InstantiateExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitInstantiateExpr(this, context);
+ /**
+ * An identifier, a keyword, a string with an optional `-` in between.
+ */
+ _ParseAST.prototype.expectTemplateBindingKey = function () {
+ var result = '';
+ var operatorFound = false;
+ do {
+ result += this.expectIdentifierOrKeywordOrString();
+ operatorFound = this.optionalOperator('-');
+ if (operatorFound) {
+ result += '-';
+ }
+ } while (operatorFound);
+ return result.toString();
};
- return InstantiateExpr;
-}(Expression));
-var LiteralExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteralExpr, _super);
- function LiteralExpr(value, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.value = value;
- return _this;
- }
- LiteralExpr.prototype.isEquivalent = function (e) {
- return e instanceof LiteralExpr && this.value === e.value;
+ // Parses the AST for ``
+ _ParseAST.prototype.parseTemplateBindings = function (tplKey) {
+ var firstBinding = true;
+ var bindings = [];
+ var warnings = [];
+ do {
+ var start = this.inputIndex;
+ var rawKey = void 0;
+ var key = void 0;
+ var isVar = false;
+ if (firstBinding) {
+ rawKey = key = tplKey;
+ firstBinding = false;
+ }
+ else {
+ isVar = this.peekKeywordLet();
+ if (isVar)
+ this.advance();
+ rawKey = this.expectTemplateBindingKey();
+ key = isVar ? rawKey : tplKey + rawKey[0].toUpperCase() + rawKey.substring(1);
+ this.optionalCharacter($COLON);
+ }
+ var name_2 = null;
+ var expression = null;
+ if (isVar) {
+ if (this.optionalOperator('=')) {
+ name_2 = this.expectTemplateBindingKey();
+ }
+ else {
+ name_2 = '\$implicit';
+ }
+ }
+ else if (this.peekKeywordAs()) {
+ this.advance(); // consume `as`
+ name_2 = rawKey;
+ key = this.expectTemplateBindingKey(); // read local var name
+ isVar = true;
+ }
+ else if (this.next !== EOF && !this.peekKeywordLet()) {
+ var start_1 = this.inputIndex;
+ var ast = this.parsePipe();
+ var source = this.input.substring(start_1 - this.offset, this.inputIndex - this.offset);
+ expression = new ASTWithSource(ast, source, this.location, this.errors);
+ }
+ bindings.push(new TemplateBinding(this.span(start), key, isVar, name_2, expression));
+ if (this.peekKeywordAs() && !isVar) {
+ var letStart = this.inputIndex;
+ this.advance(); // consume `as`
+ var letName = this.expectTemplateBindingKey(); // read local var name
+ bindings.push(new TemplateBinding(this.span(letStart), letName, true, key, null));
+ }
+ if (!this.optionalCharacter($SEMICOLON)) {
+ this.optionalCharacter($COMMA);
+ }
+ } while (this.index < this.tokens.length);
+ return new TemplateBindingParseResult(bindings, warnings, this.errors);
};
- LiteralExpr.prototype.isConstant = function () { return true; };
- LiteralExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitLiteralExpr(this, context);
+ _ParseAST.prototype.error = function (message, index) {
+ if (index === void 0) { index = null; }
+ this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location));
+ this.skip();
};
- return LiteralExpr;
-}(Expression));
-var ExternalExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ExternalExpr, _super);
- function ExternalExpr(value, type, typeParams, sourceSpan) {
- if (typeParams === void 0) { typeParams = null; }
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.value = value;
- _this.typeParams = typeParams;
- return _this;
- }
- ExternalExpr.prototype.isEquivalent = function (e) {
- return e instanceof ExternalExpr && this.value.name === e.value.name &&
- this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime;
+ _ParseAST.prototype.locationText = function (index) {
+ if (index === void 0) { index = null; }
+ if (index == null)
+ index = this.index;
+ return (index < this.tokens.length) ? "at column " + (this.tokens[index].index + 1) + " in" :
+ "at the end of the expression";
};
- ExternalExpr.prototype.isConstant = function () { return false; };
- ExternalExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitExternalExpr(this, context);
+ // Error recovery should skip tokens until it encounters a recovery point. skip() treats
+ // the end of input and a ';' as unconditionally a recovery point. It also treats ')',
+ // '}' and ']' as conditional recovery points if one of calling productions is expecting
+ // one of these symbols. This allows skip() to recover from errors such as '(a.) + 1' allowing
+ // more of the AST to be retained (it doesn't skip any tokens as the ')' is retained because
+ // of the '(' begins an '(' ')' production). The recovery points of grouping symbols
+ // must be conditional as they must be skipped if none of the calling productions are not
+ // expecting the closing token else we will never make progress in the case of an
+ // extraneous group closing symbol (such as a stray ')'). This is not the case for ';' because
+ // parseChain() is always the root production and it expects a ';'.
+ // If a production expects one of these token it increments the corresponding nesting count,
+ // and then decrements it just prior to checking if the token is in the input.
+ _ParseAST.prototype.skip = function () {
+ var n = this.next;
+ while (this.index < this.tokens.length && !n.isCharacter($SEMICOLON) &&
+ (this.rparensExpected <= 0 || !n.isCharacter($RPAREN)) &&
+ (this.rbracesExpected <= 0 || !n.isCharacter($RBRACE)) &&
+ (this.rbracketsExpected <= 0 || !n.isCharacter($RBRACKET))) {
+ if (this.next.isError()) {
+ this.errors.push(new ParserError(this.next.toString(), this.input, this.locationText(), this.location));
+ }
+ this.advance();
+ n = this.next;
+ }
};
- return ExternalExpr;
-}(Expression));
-var ExternalReference = /** @class */ (function () {
- function ExternalReference(moduleName, name, runtime) {
- this.moduleName = moduleName;
- this.name = name;
- this.runtime = runtime;
- }
- return ExternalReference;
+ return _ParseAST;
}());
-var ConditionalExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ConditionalExpr, _super);
- function ConditionalExpr(condition, trueCase, falseCase, type, sourceSpan) {
- if (falseCase === void 0) { falseCase = null; }
- var _this = _super.call(this, type || trueCase.type, sourceSpan) || this;
- _this.condition = condition;
- _this.falseCase = falseCase;
- _this.trueCase = trueCase;
- return _this;
+var SimpleExpressionChecker = /** @class */ (function () {
+ function SimpleExpressionChecker() {
+ this.errors = [];
}
- ConditionalExpr.prototype.isEquivalent = function (e) {
- return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&
- this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);
+ SimpleExpressionChecker.check = function (ast) {
+ var s = new SimpleExpressionChecker();
+ ast.visit(s);
+ return s.errors;
};
- ConditionalExpr.prototype.isConstant = function () { return false; };
- ConditionalExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitConditionalExpr(this, context);
+ SimpleExpressionChecker.prototype.visitImplicitReceiver = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitInterpolation = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitLiteralPrimitive = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitPropertyRead = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitPropertyWrite = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitSafePropertyRead = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitMethodCall = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitSafeMethodCall = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitFunctionCall = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitLiteralArray = function (ast, context) { this.visitAll(ast.expressions); };
+ SimpleExpressionChecker.prototype.visitLiteralMap = function (ast, context) { this.visitAll(ast.values); };
+ SimpleExpressionChecker.prototype.visitBinary = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitPrefixNot = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitNonNullAssert = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitConditional = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitPipe = function (ast, context) { this.errors.push('pipes'); };
+ SimpleExpressionChecker.prototype.visitKeyedRead = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitKeyedWrite = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitAll = function (asts) {
+ var _this = this;
+ return asts.map(function (node) { return node.visit(_this); });
};
- return ConditionalExpr;
-}(Expression));
-var NotExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NotExpr, _super);
- function NotExpr(condition, sourceSpan) {
- var _this = _super.call(this, BOOL_TYPE, sourceSpan) || this;
- _this.condition = condition;
- return _this;
- }
- NotExpr.prototype.isEquivalent = function (e) {
- return e instanceof NotExpr && this.condition.isEquivalent(e.condition);
- };
- NotExpr.prototype.isConstant = function () { return false; };
- NotExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitNotExpr(this, context);
- };
- return NotExpr;
-}(Expression));
-var AssertNotNull = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AssertNotNull, _super);
- function AssertNotNull(condition, sourceSpan) {
- var _this = _super.call(this, condition.type, sourceSpan) || this;
- _this.condition = condition;
- return _this;
+ SimpleExpressionChecker.prototype.visitChain = function (ast, context) { };
+ SimpleExpressionChecker.prototype.visitQuote = function (ast, context) { };
+ return SimpleExpressionChecker;
+}());
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * A path is an ordered set of elements. Typically a path is to a
+ * particular offset in a source file. The head of the list is the top
+ * most node. The tail is the node that contains the offset directly.
+ *
+ * For example, the expression `a + b + c` might have an ast that looks
+ * like:
+ * +
+ * / \
+ * a +
+ * / \
+ * b c
+ *
+ * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10,
+ * 'c' at 9-10]` and the path the node at offset 1 would be
+ * `['+' at 1-10, 'a' at 1-2]`.
+ */
+var AstPath = /** @class */ (function () {
+ function AstPath(path, position) {
+ if (position === void 0) { position = -1; }
+ this.path = path;
+ this.position = position;
}
- AssertNotNull.prototype.isEquivalent = function (e) {
- return e instanceof AssertNotNull && this.condition.isEquivalent(e.condition);
+ Object.defineProperty(AstPath.prototype, "empty", {
+ get: function () { return !this.path || !this.path.length; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AstPath.prototype, "head", {
+ get: function () { return this.path[0]; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AstPath.prototype, "tail", {
+ get: function () { return this.path[this.path.length - 1]; },
+ enumerable: true,
+ configurable: true
+ });
+ AstPath.prototype.parentOf = function (node) {
+ return node && this.path[this.path.indexOf(node) - 1];
};
- AssertNotNull.prototype.isConstant = function () { return false; };
- AssertNotNull.prototype.visitExpression = function (visitor, context) {
- return visitor.visitAssertNotNullExpr(this, context);
+ AstPath.prototype.childOf = function (node) { return this.path[this.path.indexOf(node) + 1]; };
+ AstPath.prototype.first = function (ctor) {
+ for (var i = this.path.length - 1; i >= 0; i--) {
+ var item = this.path[i];
+ if (item instanceof ctor)
+ return item;
+ }
};
- return AssertNotNull;
-}(Expression));
-var CastExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CastExpr, _super);
- function CastExpr(value, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.value = value;
- return _this;
+ AstPath.prototype.push = function (node) { this.path.push(node); };
+ AstPath.prototype.pop = function () { return this.path.pop(); };
+ return AstPath;
+}());
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var Text$2 = /** @class */ (function () {
+ function Text(value, sourceSpan, i18n) {
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ this.i18n = i18n;
}
- CastExpr.prototype.isEquivalent = function (e) {
- return e instanceof CastExpr && this.value.isEquivalent(e.value);
- };
- CastExpr.prototype.isConstant = function () { return false; };
- CastExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitCastExpr(this, context);
- };
- return CastExpr;
-}(Expression));
-var FnParam = /** @class */ (function () {
- function FnParam(name, type) {
- if (type === void 0) { type = null; }
- this.name = name;
+ Text.prototype.visit = function (visitor, context) { return visitor.visitText(this, context); };
+ return Text;
+}());
+var Expansion = /** @class */ (function () {
+ function Expansion(switchValue, type, cases, sourceSpan, switchValueSourceSpan, i18n) {
+ this.switchValue = switchValue;
this.type = type;
+ this.cases = cases;
+ this.sourceSpan = sourceSpan;
+ this.switchValueSourceSpan = switchValueSourceSpan;
+ this.i18n = i18n;
}
- FnParam.prototype.isEquivalent = function (param) { return this.name === param.name; };
- return FnParam;
+ Expansion.prototype.visit = function (visitor, context) { return visitor.visitExpansion(this, context); };
+ return Expansion;
}());
-var FunctionExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(FunctionExpr, _super);
- function FunctionExpr(params, statements, type, sourceSpan, name) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.params = params;
- _this.statements = statements;
- _this.name = name;
- return _this;
- }
- FunctionExpr.prototype.isEquivalent = function (e) {
- return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&
- areAllEquivalent(this.statements, e.statements);
- };
- FunctionExpr.prototype.isConstant = function () { return false; };
- FunctionExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitFunctionExpr(this, context);
- };
- FunctionExpr.prototype.toDeclStmt = function (name, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan);
- };
- return FunctionExpr;
-}(Expression));
-var BinaryOperatorExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(BinaryOperatorExpr, _super);
- function BinaryOperatorExpr(operator, lhs, rhs, type, sourceSpan, parens) {
- if (parens === void 0) { parens = true; }
- var _this = _super.call(this, type || lhs.type, sourceSpan) || this;
- _this.operator = operator;
- _this.rhs = rhs;
- _this.parens = parens;
- _this.lhs = lhs;
- return _this;
- }
- BinaryOperatorExpr.prototype.isEquivalent = function (e) {
- return e instanceof BinaryOperatorExpr && this.operator === e.operator &&
- this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);
- };
- BinaryOperatorExpr.prototype.isConstant = function () { return false; };
- BinaryOperatorExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitBinaryOperatorExpr(this, context);
- };
- return BinaryOperatorExpr;
-}(Expression));
-var ReadPropExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ReadPropExpr, _super);
- function ReadPropExpr(receiver, name, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.receiver = receiver;
- _this.name = name;
- return _this;
+var ExpansionCase = /** @class */ (function () {
+ function ExpansionCase(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) {
+ this.value = value;
+ this.expression = expression;
+ this.sourceSpan = sourceSpan;
+ this.valueSourceSpan = valueSourceSpan;
+ this.expSourceSpan = expSourceSpan;
}
- ReadPropExpr.prototype.isEquivalent = function (e) {
- return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&
- this.name === e.name;
- };
- ReadPropExpr.prototype.isConstant = function () { return false; };
- ReadPropExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitReadPropExpr(this, context);
- };
- ReadPropExpr.prototype.set = function (value) {
- return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);
- };
- return ReadPropExpr;
-}(Expression));
-var ReadKeyExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ReadKeyExpr, _super);
- function ReadKeyExpr(receiver, index, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.receiver = receiver;
- _this.index = index;
- return _this;
+ ExpansionCase.prototype.visit = function (visitor, context) { return visitor.visitExpansionCase(this, context); };
+ return ExpansionCase;
+}());
+var Attribute = /** @class */ (function () {
+ function Attribute(name, value, sourceSpan, valueSpan, i18n) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ this.valueSpan = valueSpan;
+ this.i18n = i18n;
}
- ReadKeyExpr.prototype.isEquivalent = function (e) {
- return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&
- this.index.isEquivalent(e.index);
- };
- ReadKeyExpr.prototype.isConstant = function () { return false; };
- ReadKeyExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitReadKeyExpr(this, context);
- };
- ReadKeyExpr.prototype.set = function (value) {
- return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);
- };
- return ReadKeyExpr;
-}(Expression));
-var LiteralArrayExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteralArrayExpr, _super);
- function LiteralArrayExpr(entries, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.entries = entries;
- return _this;
+ Attribute.prototype.visit = function (visitor, context) { return visitor.visitAttribute(this, context); };
+ return Attribute;
+}());
+var Element = /** @class */ (function () {
+ function Element(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
+ if (startSourceSpan === void 0) { startSourceSpan = null; }
+ if (endSourceSpan === void 0) { endSourceSpan = null; }
+ this.name = name;
+ this.attrs = attrs;
+ this.children = children;
+ this.sourceSpan = sourceSpan;
+ this.startSourceSpan = startSourceSpan;
+ this.endSourceSpan = endSourceSpan;
+ this.i18n = i18n;
}
- LiteralArrayExpr.prototype.isConstant = function () { return this.entries.every(function (e) { return e.isConstant(); }); };
- LiteralArrayExpr.prototype.isEquivalent = function (e) {
- return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);
- };
- LiteralArrayExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitLiteralArrayExpr(this, context);
- };
- return LiteralArrayExpr;
-}(Expression));
-var LiteralMapEntry = /** @class */ (function () {
- function LiteralMapEntry(key, value, quoted) {
- this.key = key;
+ Element.prototype.visit = function (visitor, context) { return visitor.visitElement(this, context); };
+ return Element;
+}());
+var Comment = /** @class */ (function () {
+ function Comment(value, sourceSpan) {
this.value = value;
- this.quoted = quoted;
+ this.sourceSpan = sourceSpan;
}
- LiteralMapEntry.prototype.isEquivalent = function (e) {
- return this.key === e.key && this.value.isEquivalent(e.value);
- };
- return LiteralMapEntry;
+ Comment.prototype.visit = function (visitor, context) { return visitor.visitComment(this, context); };
+ return Comment;
}());
-var LiteralMapExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteralMapExpr, _super);
- function LiteralMapExpr(entries, type, sourceSpan) {
- var _this = _super.call(this, type, sourceSpan) || this;
- _this.entries = entries;
- _this.valueType = null;
- if (type) {
- _this.valueType = type.valueType;
+function visitAll(visitor, nodes, context) {
+ if (context === void 0) { context = null; }
+ var result = [];
+ var visit = visitor.visit ?
+ function (ast) { return visitor.visit(ast, context) || ast.visit(visitor, context); } :
+ function (ast) { return ast.visit(visitor, context); };
+ nodes.forEach(function (ast) {
+ var astResult = visit(ast);
+ if (astResult) {
+ result.push(astResult);
}
- return _this;
+ });
+ return result;
+}
+var RecursiveVisitor = /** @class */ (function () {
+ function RecursiveVisitor() {
}
- LiteralMapExpr.prototype.isEquivalent = function (e) {
- return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);
- };
- LiteralMapExpr.prototype.isConstant = function () { return this.entries.every(function (e) { return e.value.isConstant(); }); };
- LiteralMapExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitLiteralMapExpr(this, context);
+ RecursiveVisitor.prototype.visitElement = function (ast, context) {
+ this.visitChildren(context, function (visit) {
+ visit(ast.attrs);
+ visit(ast.children);
+ });
};
- return LiteralMapExpr;
-}(Expression));
-var CommaExpr = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CommaExpr, _super);
- function CommaExpr(parts, sourceSpan) {
- var _this = _super.call(this, parts[parts.length - 1].type, sourceSpan) || this;
- _this.parts = parts;
- return _this;
- }
- CommaExpr.prototype.isEquivalent = function (e) {
- return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);
+ RecursiveVisitor.prototype.visitAttribute = function (ast, context) { };
+ RecursiveVisitor.prototype.visitText = function (ast, context) { };
+ RecursiveVisitor.prototype.visitComment = function (ast, context) { };
+ RecursiveVisitor.prototype.visitExpansion = function (ast, context) {
+ return this.visitChildren(context, function (visit) { visit(ast.cases); });
};
- CommaExpr.prototype.isConstant = function () { return false; };
- CommaExpr.prototype.visitExpression = function (visitor, context) {
- return visitor.visitCommaExpr(this, context);
+ RecursiveVisitor.prototype.visitExpansionCase = function (ast, context) { };
+ RecursiveVisitor.prototype.visitChildren = function (context, cb) {
+ var results = [];
+ var t = this;
+ function visit(children) {
+ if (children)
+ results.push(visitAll(t, children, context));
+ }
+ cb(visit);
+ return [].concat.apply([], results);
};
- return CommaExpr;
-}(Expression));
-var THIS_EXPR = new ReadVarExpr(BuiltinVar.This, null, null);
-var SUPER_EXPR = new ReadVarExpr(BuiltinVar.Super, null, null);
-var CATCH_ERROR_VAR = new ReadVarExpr(BuiltinVar.CatchError, null, null);
-var CATCH_STACK_VAR = new ReadVarExpr(BuiltinVar.CatchStack, null, null);
-var NULL_EXPR = new LiteralExpr(null, null, null);
-var TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);
-//// Statements
-var StmtModifier;
-(function (StmtModifier) {
- StmtModifier[StmtModifier["Final"] = 0] = "Final";
- StmtModifier[StmtModifier["Private"] = 1] = "Private";
- StmtModifier[StmtModifier["Exported"] = 2] = "Exported";
- StmtModifier[StmtModifier["Static"] = 3] = "Static";
-})(StmtModifier || (StmtModifier = {}));
-var Statement = /** @class */ (function () {
- function Statement(modifiers, sourceSpan) {
- this.modifiers = modifiers || [];
- this.sourceSpan = sourceSpan || null;
- }
- Statement.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; };
- return Statement;
+ return RecursiveVisitor;
}());
-var DeclareVarStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DeclareVarStmt, _super);
- function DeclareVarStmt(name, value, type, modifiers, sourceSpan) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers, sourceSpan) || this;
- _this.name = name;
- _this.value = value;
- _this.type = type || (value && value.type) || null;
- return _this;
+function spanOf(ast) {
+ var start = ast.sourceSpan.start.offset;
+ var end = ast.sourceSpan.end.offset;
+ if (ast instanceof Element) {
+ if (ast.endSourceSpan) {
+ end = ast.endSourceSpan.end.offset;
+ }
+ else if (ast.children && ast.children.length) {
+ end = spanOf(ast.children[ast.children.length - 1]).end;
+ }
}
- DeclareVarStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof DeclareVarStmt && this.name === stmt.name &&
- (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value);
- };
- DeclareVarStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitDeclareVarStmt(this, context);
- };
- return DeclareVarStmt;
-}(Statement));
-var DeclareFunctionStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DeclareFunctionStmt, _super);
- function DeclareFunctionStmt(name, params, statements, type, modifiers, sourceSpan) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers, sourceSpan) || this;
- _this.name = name;
- _this.params = params;
- _this.statements = statements;
- _this.type = type || null;
- return _this;
+ return { start: start, end: end };
+}
+function findNode(nodes, position) {
+ var path = [];
+ var visitor = new /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(class_1, _super);
+ function class_1() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ class_1.prototype.visit = function (ast, context) {
+ var span = spanOf(ast);
+ if (span.start <= position && position < span.end) {
+ path.push(ast);
+ }
+ else {
+ // Returning a value here will result in the children being skipped.
+ return true;
+ }
+ };
+ return class_1;
+ }(RecursiveVisitor));
+ visitAll(visitor, nodes);
+ return new AstPath(path, position);
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var TokenType$1;
+(function (TokenType) {
+ TokenType[TokenType["TAG_OPEN_START"] = 0] = "TAG_OPEN_START";
+ TokenType[TokenType["TAG_OPEN_END"] = 1] = "TAG_OPEN_END";
+ TokenType[TokenType["TAG_OPEN_END_VOID"] = 2] = "TAG_OPEN_END_VOID";
+ TokenType[TokenType["TAG_CLOSE"] = 3] = "TAG_CLOSE";
+ TokenType[TokenType["TEXT"] = 4] = "TEXT";
+ TokenType[TokenType["ESCAPABLE_RAW_TEXT"] = 5] = "ESCAPABLE_RAW_TEXT";
+ TokenType[TokenType["RAW_TEXT"] = 6] = "RAW_TEXT";
+ TokenType[TokenType["COMMENT_START"] = 7] = "COMMENT_START";
+ TokenType[TokenType["COMMENT_END"] = 8] = "COMMENT_END";
+ TokenType[TokenType["CDATA_START"] = 9] = "CDATA_START";
+ TokenType[TokenType["CDATA_END"] = 10] = "CDATA_END";
+ TokenType[TokenType["ATTR_NAME"] = 11] = "ATTR_NAME";
+ TokenType[TokenType["ATTR_VALUE"] = 12] = "ATTR_VALUE";
+ TokenType[TokenType["DOC_TYPE"] = 13] = "DOC_TYPE";
+ TokenType[TokenType["EXPANSION_FORM_START"] = 14] = "EXPANSION_FORM_START";
+ TokenType[TokenType["EXPANSION_CASE_VALUE"] = 15] = "EXPANSION_CASE_VALUE";
+ TokenType[TokenType["EXPANSION_CASE_EXP_START"] = 16] = "EXPANSION_CASE_EXP_START";
+ TokenType[TokenType["EXPANSION_CASE_EXP_END"] = 17] = "EXPANSION_CASE_EXP_END";
+ TokenType[TokenType["EXPANSION_FORM_END"] = 18] = "EXPANSION_FORM_END";
+ TokenType[TokenType["EOF"] = 19] = "EOF";
+})(TokenType$1 || (TokenType$1 = {}));
+var Token$1 = /** @class */ (function () {
+ function Token(type, parts, sourceSpan) {
+ this.type = type;
+ this.parts = parts;
+ this.sourceSpan = sourceSpan;
}
- DeclareFunctionStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&
- areAllEquivalent(this.statements, stmt.statements);
- };
- DeclareFunctionStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitDeclareFunctionStmt(this, context);
- };
- return DeclareFunctionStmt;
-}(Statement));
-var ExpressionStatement = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ExpressionStatement, _super);
- function ExpressionStatement(expr, sourceSpan) {
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.expr = expr;
+ return Token;
+}());
+var TokenError = /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TokenError, _super);
+ function TokenError(errorMsg, tokenType, span) {
+ var _this = _super.call(this, span, errorMsg) || this;
+ _this.tokenType = tokenType;
return _this;
}
- ExpressionStatement.prototype.isEquivalent = function (stmt) {
- return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);
- };
- ExpressionStatement.prototype.visitStatement = function (visitor, context) {
- return visitor.visitExpressionStmt(this, context);
- };
- return ExpressionStatement;
-}(Statement));
-var ReturnStatement = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ReturnStatement, _super);
- function ReturnStatement(value, sourceSpan) {
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.value = value;
- return _this;
+ return TokenError;
+}(ParseError));
+var TokenizeResult = /** @class */ (function () {
+ function TokenizeResult(tokens, errors) {
+ this.tokens = tokens;
+ this.errors = errors;
}
- ReturnStatement.prototype.isEquivalent = function (stmt) {
- return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);
- };
- ReturnStatement.prototype.visitStatement = function (visitor, context) {
- return visitor.visitReturnStmt(this, context);
- };
- return ReturnStatement;
-}(Statement));
-var AbstractClassPart = /** @class */ (function () {
- function AbstractClassPart(type, modifiers) {
- this.modifiers = modifiers;
- if (!modifiers) {
- this.modifiers = [];
- }
- this.type = type || null;
- }
- AbstractClassPart.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; };
- return AbstractClassPart;
+ return TokenizeResult;
}());
-var ClassField = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ClassField, _super);
- function ClassField(name, type, modifiers, initializer) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, type, modifiers) || this;
- _this.name = name;
- _this.initializer = initializer;
- return _this;
- }
- ClassField.prototype.isEquivalent = function (f) { return this.name === f.name; };
- return ClassField;
-}(AbstractClassPart));
-var ClassMethod = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ClassMethod, _super);
- function ClassMethod(name, params, body, type, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, type, modifiers) || this;
- _this.name = name;
- _this.params = params;
- _this.body = body;
- return _this;
- }
- ClassMethod.prototype.isEquivalent = function (m) {
- return this.name === m.name && areAllEquivalent(this.body, m.body);
- };
- return ClassMethod;
-}(AbstractClassPart));
-var ClassGetter = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ClassGetter, _super);
- function ClassGetter(name, body, type, modifiers) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, type, modifiers) || this;
- _this.name = name;
- _this.body = body;
- return _this;
- }
- ClassGetter.prototype.isEquivalent = function (m) {
- return this.name === m.name && areAllEquivalent(this.body, m.body);
- };
- return ClassGetter;
-}(AbstractClassPart));
-var ClassStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ClassStmt, _super);
- function ClassStmt(name, parent, fields, getters, constructorMethod, methods, modifiers, sourceSpan) {
- if (modifiers === void 0) { modifiers = null; }
- var _this = _super.call(this, modifiers, sourceSpan) || this;
- _this.name = name;
- _this.parent = parent;
- _this.fields = fields;
- _this.getters = getters;
- _this.constructorMethod = constructorMethod;
- _this.methods = methods;
- return _this;
- }
- ClassStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof ClassStmt && this.name === stmt.name &&
- nullSafeIsEquivalent(this.parent, stmt.parent) &&
- areAllEquivalent(this.fields, stmt.fields) &&
- areAllEquivalent(this.getters, stmt.getters) &&
- this.constructorMethod.isEquivalent(stmt.constructorMethod) &&
- areAllEquivalent(this.methods, stmt.methods);
- };
- ClassStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitDeclareClassStmt(this, context);
- };
- return ClassStmt;
-}(Statement));
-var IfStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(IfStmt, _super);
- function IfStmt(condition, trueCase, falseCase, sourceSpan) {
- if (falseCase === void 0) { falseCase = []; }
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.condition = condition;
- _this.trueCase = trueCase;
- _this.falseCase = falseCase;
- return _this;
- }
- IfStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&
- areAllEquivalent(this.trueCase, stmt.trueCase) &&
- areAllEquivalent(this.falseCase, stmt.falseCase);
- };
- IfStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitIfStmt(this, context);
- };
- return IfStmt;
-}(Statement));
-var CommentStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CommentStmt, _super);
- function CommentStmt(comment, multiline, sourceSpan) {
- if (multiline === void 0) { multiline = false; }
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.comment = comment;
- _this.multiline = multiline;
- return _this;
+function tokenize(source, url, getTagDefinition, tokenizeExpansionForms, interpolationConfig) {
+ if (tokenizeExpansionForms === void 0) { tokenizeExpansionForms = false; }
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ return new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, tokenizeExpansionForms, interpolationConfig)
+ .tokenize();
+}
+var _CR_OR_CRLF_REGEXP = /\r\n?/g;
+function _unexpectedCharacterErrorMsg(charCode) {
+ var char = charCode === $EOF ? 'EOF' : String.fromCharCode(charCode);
+ return "Unexpected character \"" + char + "\"";
+}
+function _unknownEntityErrorMsg(entitySrc) {
+ return "Unknown entity \"" + entitySrc + "\" - use the \";\" or \";\" syntax";
+}
+var _ControlFlowError = /** @class */ (function () {
+ function _ControlFlowError(error) {
+ this.error = error;
}
- CommentStmt.prototype.isEquivalent = function (stmt) { return stmt instanceof CommentStmt; };
- CommentStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitCommentStmt(this, context);
- };
- return CommentStmt;
-}(Statement));
-var JSDocCommentStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(JSDocCommentStmt, _super);
- function JSDocCommentStmt(tags, sourceSpan) {
- if (tags === void 0) { tags = []; }
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.tags = tags;
- return _this;
+ return _ControlFlowError;
+}());
+// See http://www.w3.org/TR/html51/syntax.html#writing
+var _Tokenizer = /** @class */ (function () {
+ /**
+ * @param _file The html source
+ * @param _getTagDefinition
+ * @param _tokenizeIcu Whether to tokenize ICU messages (considered as text nodes when false)
+ * @param _interpolationConfig
+ */
+ function _Tokenizer(_file, _getTagDefinition, _tokenizeIcu, _interpolationConfig) {
+ if (_interpolationConfig === void 0) { _interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ this._file = _file;
+ this._getTagDefinition = _getTagDefinition;
+ this._tokenizeIcu = _tokenizeIcu;
+ this._interpolationConfig = _interpolationConfig;
+ // Note: this is always lowercase!
+ this._peek = -1;
+ this._nextPeek = -1;
+ this._index = -1;
+ this._line = 0;
+ this._column = -1;
+ this._expansionCaseStack = [];
+ this._inInterpolation = false;
+ this.tokens = [];
+ this.errors = [];
+ this._input = _file.content;
+ this._length = _file.content.length;
+ this._advance();
}
- JSDocCommentStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof JSDocCommentStmt && this.toString() === stmt.toString();
- };
- JSDocCommentStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitJSDocCommentStmt(this, context);
+ _Tokenizer.prototype._processCarriageReturns = function (content) {
+ // http://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream
+ // In order to keep the original position in the source, we can not
+ // pre-process it.
+ // Instead CRs are processed right before instantiating the tokens.
+ return content.replace(_CR_OR_CRLF_REGEXP, '\n');
};
- JSDocCommentStmt.prototype.toString = function () { return serializeTags(this.tags); };
- return JSDocCommentStmt;
-}(Statement));
-var TryCatchStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TryCatchStmt, _super);
- function TryCatchStmt(bodyStmts, catchStmts, sourceSpan) {
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.bodyStmts = bodyStmts;
- _this.catchStmts = catchStmts;
- return _this;
- }
- TryCatchStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof TryCatchStmt && areAllEquivalent(this.bodyStmts, stmt.bodyStmts) &&
- areAllEquivalent(this.catchStmts, stmt.catchStmts);
+ _Tokenizer.prototype.tokenize = function () {
+ while (this._peek !== $EOF) {
+ var start = this._getLocation();
+ try {
+ if (this._attemptCharCode($LT)) {
+ if (this._attemptCharCode($BANG)) {
+ if (this._attemptCharCode($LBRACKET)) {
+ this._consumeCdata(start);
+ }
+ else if (this._attemptCharCode($MINUS)) {
+ this._consumeComment(start);
+ }
+ else {
+ this._consumeDocType(start);
+ }
+ }
+ else if (this._attemptCharCode($SLASH)) {
+ this._consumeTagClose(start);
+ }
+ else {
+ this._consumeTagOpen(start);
+ }
+ }
+ else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) {
+ this._consumeText();
+ }
+ }
+ catch (e) {
+ if (e instanceof _ControlFlowError) {
+ this.errors.push(e.error);
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+ this._beginToken(TokenType$1.EOF);
+ this._endToken([]);
+ return new TokenizeResult(mergeTextTokens(this.tokens), this.errors);
};
- TryCatchStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitTryCatchStmt(this, context);
+ /**
+ * @returns whether an ICU token has been created
+ * @internal
+ */
+ _Tokenizer.prototype._tokenizeExpansionForm = function () {
+ if (isExpansionFormStart(this._input, this._index, this._interpolationConfig)) {
+ this._consumeExpansionFormStart();
+ return true;
+ }
+ if (isExpansionCaseStart(this._peek) && this._isInExpansionForm()) {
+ this._consumeExpansionCaseStart();
+ return true;
+ }
+ if (this._peek === $RBRACE) {
+ if (this._isInExpansionCase()) {
+ this._consumeExpansionCaseEnd();
+ return true;
+ }
+ if (this._isInExpansionForm()) {
+ this._consumeExpansionFormEnd();
+ return true;
+ }
+ }
+ return false;
};
- return TryCatchStmt;
-}(Statement));
-var ThrowStmt = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ThrowStmt, _super);
- function ThrowStmt(error, sourceSpan) {
- var _this = _super.call(this, null, sourceSpan) || this;
- _this.error = error;
- return _this;
- }
- ThrowStmt.prototype.isEquivalent = function (stmt) {
- return stmt instanceof TryCatchStmt && this.error.isEquivalent(stmt.error);
+ _Tokenizer.prototype._getLocation = function () {
+ return new ParseLocation(this._file, this._index, this._line, this._column);
};
- ThrowStmt.prototype.visitStatement = function (visitor, context) {
- return visitor.visitThrowStmt(this, context);
+ _Tokenizer.prototype._getSpan = function (start, end) {
+ if (start === void 0) { start = this._getLocation(); }
+ if (end === void 0) { end = this._getLocation(); }
+ return new ParseSourceSpan(start, end);
};
- return ThrowStmt;
-}(Statement));
-var AstTransformer$1 = /** @class */ (function () {
- function AstTransformer() {
- }
- AstTransformer.prototype.transformExpr = function (expr, context) { return expr; };
- AstTransformer.prototype.transformStmt = function (stmt, context) { return stmt; };
- AstTransformer.prototype.visitReadVarExpr = function (ast, context) { return this.transformExpr(ast, context); };
- AstTransformer.prototype.visitWriteVarExpr = function (expr, context) {
- return this.transformExpr(new WriteVarExpr(expr.name, expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);
+ _Tokenizer.prototype._beginToken = function (type, start) {
+ if (start === void 0) { start = this._getLocation(); }
+ this._currentTokenStart = start;
+ this._currentTokenType = type;
};
- AstTransformer.prototype.visitWriteKeyExpr = function (expr, context) {
- return this.transformExpr(new WriteKeyExpr(expr.receiver.visitExpression(this, context), expr.index.visitExpression(this, context), expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);
+ _Tokenizer.prototype._endToken = function (parts, end) {
+ if (end === void 0) { end = this._getLocation(); }
+ var token = new Token$1(this._currentTokenType, parts, new ParseSourceSpan(this._currentTokenStart, end));
+ this.tokens.push(token);
+ this._currentTokenStart = null;
+ this._currentTokenType = null;
+ return token;
};
- AstTransformer.prototype.visitWritePropExpr = function (expr, context) {
- return this.transformExpr(new WritePropExpr(expr.receiver.visitExpression(this, context), expr.name, expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);
+ _Tokenizer.prototype._createError = function (msg, span) {
+ if (this._isInExpansionForm()) {
+ msg += " (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)";
+ }
+ var error = new TokenError(msg, this._currentTokenType, span);
+ this._currentTokenStart = null;
+ this._currentTokenType = null;
+ return new _ControlFlowError(error);
};
- AstTransformer.prototype.visitInvokeMethodExpr = function (ast, context) {
- var method = ast.builtin || ast.name;
- return this.transformExpr(new InvokeMethodExpr(ast.receiver.visitExpression(this, context), method, this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._advance = function () {
+ if (this._index >= this._length) {
+ throw this._createError(_unexpectedCharacterErrorMsg($EOF), this._getSpan());
+ }
+ if (this._peek === $LF) {
+ this._line++;
+ this._column = 0;
+ }
+ else if (this._peek !== $LF && this._peek !== $CR) {
+ this._column++;
+ }
+ this._index++;
+ this._peek = this._index >= this._length ? $EOF : this._input.charCodeAt(this._index);
+ this._nextPeek =
+ this._index + 1 >= this._length ? $EOF : this._input.charCodeAt(this._index + 1);
};
- AstTransformer.prototype.visitInvokeFunctionExpr = function (ast, context) {
- return this.transformExpr(new InvokeFunctionExpr(ast.fn.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptCharCode = function (charCode) {
+ if (this._peek === charCode) {
+ this._advance();
+ return true;
+ }
+ return false;
};
- AstTransformer.prototype.visitInstantiateExpr = function (ast, context) {
- return this.transformExpr(new InstantiateExpr(ast.classExpr.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptCharCodeCaseInsensitive = function (charCode) {
+ if (compareCharCodeCaseInsensitive(this._peek, charCode)) {
+ this._advance();
+ return true;
+ }
+ return false;
};
- AstTransformer.prototype.visitLiteralExpr = function (ast, context) { return this.transformExpr(ast, context); };
- AstTransformer.prototype.visitExternalExpr = function (ast, context) {
- return this.transformExpr(ast, context);
+ _Tokenizer.prototype._requireCharCode = function (charCode) {
+ var location = this._getLocation();
+ if (!this._attemptCharCode(charCode)) {
+ throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(location, location));
+ }
};
- AstTransformer.prototype.visitConditionalExpr = function (ast, context) {
- return this.transformExpr(new ConditionalExpr(ast.condition.visitExpression(this, context), ast.trueCase.visitExpression(this, context), ast.falseCase.visitExpression(this, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptStr = function (chars) {
+ var len = chars.length;
+ if (this._index + len > this._length) {
+ return false;
+ }
+ var initialPosition = this._savePosition();
+ for (var i = 0; i < len; i++) {
+ if (!this._attemptCharCode(chars.charCodeAt(i))) {
+ // If attempting to parse the string fails, we want to reset the parser
+ // to where it was before the attempt
+ this._restorePosition(initialPosition);
+ return false;
+ }
+ }
+ return true;
};
- AstTransformer.prototype.visitNotExpr = function (ast, context) {
- return this.transformExpr(new NotExpr(ast.condition.visitExpression(this, context), ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptStrCaseInsensitive = function (chars) {
+ for (var i = 0; i < chars.length; i++) {
+ if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) {
+ return false;
+ }
+ }
+ return true;
};
- AstTransformer.prototype.visitAssertNotNullExpr = function (ast, context) {
- return this.transformExpr(new AssertNotNull(ast.condition.visitExpression(this, context), ast.sourceSpan), context);
+ _Tokenizer.prototype._requireStr = function (chars) {
+ var location = this._getLocation();
+ if (!this._attemptStr(chars)) {
+ throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(location));
+ }
};
- AstTransformer.prototype.visitCastExpr = function (ast, context) {
- return this.transformExpr(new CastExpr(ast.value.visitExpression(this, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptCharCodeUntilFn = function (predicate) {
+ while (!predicate(this._peek)) {
+ this._advance();
+ }
};
- AstTransformer.prototype.visitFunctionExpr = function (ast, context) {
- return this.transformExpr(new FunctionExpr(ast.params, this.visitAllStatements(ast.statements, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._requireCharCodeUntilFn = function (predicate, len) {
+ var start = this._getLocation();
+ this._attemptCharCodeUntilFn(predicate);
+ if (this._index - start.offset < len) {
+ throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(start, start));
+ }
};
- AstTransformer.prototype.visitBinaryOperatorExpr = function (ast, context) {
- return this.transformExpr(new BinaryOperatorExpr(ast.operator, ast.lhs.visitExpression(this, context), ast.rhs.visitExpression(this, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._attemptUntilChar = function (char) {
+ while (this._peek !== char) {
+ this._advance();
+ }
};
- AstTransformer.prototype.visitReadPropExpr = function (ast, context) {
- return this.transformExpr(new ReadPropExpr(ast.receiver.visitExpression(this, context), ast.name, ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._readChar = function (decodeEntities) {
+ if (decodeEntities && this._peek === $AMPERSAND) {
+ return this._decodeEntity();
+ }
+ else {
+ var index = this._index;
+ this._advance();
+ return this._input[index];
+ }
};
- AstTransformer.prototype.visitReadKeyExpr = function (ast, context) {
- return this.transformExpr(new ReadKeyExpr(ast.receiver.visitExpression(this, context), ast.index.visitExpression(this, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._decodeEntity = function () {
+ var start = this._getLocation();
+ this._advance();
+ if (this._attemptCharCode($HASH)) {
+ var isHex = this._attemptCharCode($x) || this._attemptCharCode($X);
+ var numberStart = this._getLocation().offset;
+ this._attemptCharCodeUntilFn(isDigitEntityEnd);
+ if (this._peek != $SEMICOLON) {
+ throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan());
+ }
+ this._advance();
+ var strNum = this._input.substring(numberStart, this._index - 1);
+ try {
+ var charCode = parseInt(strNum, isHex ? 16 : 10);
+ return String.fromCharCode(charCode);
+ }
+ catch (e) {
+ var entity = this._input.substring(start.offset + 1, this._index - 1);
+ throw this._createError(_unknownEntityErrorMsg(entity), this._getSpan(start));
+ }
+ }
+ else {
+ var startPosition = this._savePosition();
+ this._attemptCharCodeUntilFn(isNamedEntityEnd);
+ if (this._peek != $SEMICOLON) {
+ this._restorePosition(startPosition);
+ return '&';
+ }
+ this._advance();
+ var name_1 = this._input.substring(start.offset + 1, this._index - 1);
+ var char = NAMED_ENTITIES[name_1];
+ if (!char) {
+ throw this._createError(_unknownEntityErrorMsg(name_1), this._getSpan(start));
+ }
+ return char;
+ }
};
- AstTransformer.prototype.visitLiteralArrayExpr = function (ast, context) {
- return this.transformExpr(new LiteralArrayExpr(this.visitAllExpressions(ast.entries, context), ast.type, ast.sourceSpan), context);
+ _Tokenizer.prototype._consumeRawText = function (decodeEntities, firstCharOfEnd, attemptEndRest) {
+ var tagCloseStart;
+ var textStart = this._getLocation();
+ this._beginToken(decodeEntities ? TokenType$1.ESCAPABLE_RAW_TEXT : TokenType$1.RAW_TEXT, textStart);
+ var parts = [];
+ while (true) {
+ tagCloseStart = this._getLocation();
+ if (this._attemptCharCode(firstCharOfEnd) && attemptEndRest()) {
+ break;
+ }
+ if (this._index > tagCloseStart.offset) {
+ // add the characters consumed by the previous if statement to the output
+ parts.push(this._input.substring(tagCloseStart.offset, this._index));
+ }
+ while (this._peek !== firstCharOfEnd) {
+ parts.push(this._readChar(decodeEntities));
+ }
+ }
+ return this._endToken([this._processCarriageReturns(parts.join(''))], tagCloseStart);
};
- AstTransformer.prototype.visitLiteralMapExpr = function (ast, context) {
+ _Tokenizer.prototype._consumeComment = function (start) {
var _this = this;
- var entries = ast.entries.map(function (entry) { return new LiteralMapEntry(entry.key, entry.value.visitExpression(_this, context), entry.quoted); });
- var mapType = new MapType(ast.valueType, null);
- return this.transformExpr(new LiteralMapExpr(entries, mapType, ast.sourceSpan), context);
- };
- AstTransformer.prototype.visitCommaExpr = function (ast, context) {
- return this.transformExpr(new CommaExpr(this.visitAllExpressions(ast.parts, context), ast.sourceSpan), context);
+ this._beginToken(TokenType$1.COMMENT_START, start);
+ this._requireCharCode($MINUS);
+ this._endToken([]);
+ var textToken = this._consumeRawText(false, $MINUS, function () { return _this._attemptStr('->'); });
+ this._beginToken(TokenType$1.COMMENT_END, textToken.sourceSpan.end);
+ this._endToken([]);
};
- AstTransformer.prototype.visitAllExpressions = function (exprs, context) {
+ _Tokenizer.prototype._consumeCdata = function (start) {
var _this = this;
- return exprs.map(function (expr) { return expr.visitExpression(_this, context); });
- };
- AstTransformer.prototype.visitDeclareVarStmt = function (stmt, context) {
- var value = stmt.value && stmt.value.visitExpression(this, context);
- return this.transformStmt(new DeclareVarStmt(stmt.name, value, stmt.type, stmt.modifiers, stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitDeclareFunctionStmt = function (stmt, context) {
- return this.transformStmt(new DeclareFunctionStmt(stmt.name, stmt.params, this.visitAllStatements(stmt.statements, context), stmt.type, stmt.modifiers, stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitExpressionStmt = function (stmt, context) {
- return this.transformStmt(new ExpressionStatement(stmt.expr.visitExpression(this, context), stmt.sourceSpan), context);
+ this._beginToken(TokenType$1.CDATA_START, start);
+ this._requireStr('CDATA[');
+ this._endToken([]);
+ var textToken = this._consumeRawText(false, $RBRACKET, function () { return _this._attemptStr(']>'); });
+ this._beginToken(TokenType$1.CDATA_END, textToken.sourceSpan.end);
+ this._endToken([]);
};
- AstTransformer.prototype.visitReturnStmt = function (stmt, context) {
- return this.transformStmt(new ReturnStatement(stmt.value.visitExpression(this, context), stmt.sourceSpan), context);
+ _Tokenizer.prototype._consumeDocType = function (start) {
+ this._beginToken(TokenType$1.DOC_TYPE, start);
+ this._attemptUntilChar($GT);
+ this._advance();
+ this._endToken([this._input.substring(start.offset + 2, this._index - 1)]);
};
- AstTransformer.prototype.visitDeclareClassStmt = function (stmt, context) {
- var _this = this;
- var parent = stmt.parent.visitExpression(this, context);
- var getters = stmt.getters.map(function (getter) { return new ClassGetter(getter.name, _this.visitAllStatements(getter.body, context), getter.type, getter.modifiers); });
- var ctorMethod = stmt.constructorMethod &&
- new ClassMethod(stmt.constructorMethod.name, stmt.constructorMethod.params, this.visitAllStatements(stmt.constructorMethod.body, context), stmt.constructorMethod.type, stmt.constructorMethod.modifiers);
- var methods = stmt.methods.map(function (method) { return new ClassMethod(method.name, method.params, _this.visitAllStatements(method.body, context), method.type, method.modifiers); });
- return this.transformStmt(new ClassStmt(stmt.name, parent, stmt.fields, getters, ctorMethod, methods, stmt.modifiers, stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitIfStmt = function (stmt, context) {
- return this.transformStmt(new IfStmt(stmt.condition.visitExpression(this, context), this.visitAllStatements(stmt.trueCase, context), this.visitAllStatements(stmt.falseCase, context), stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitTryCatchStmt = function (stmt, context) {
- return this.transformStmt(new TryCatchStmt(this.visitAllStatements(stmt.bodyStmts, context), this.visitAllStatements(stmt.catchStmts, context), stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitThrowStmt = function (stmt, context) {
- return this.transformStmt(new ThrowStmt(stmt.error.visitExpression(this, context), stmt.sourceSpan), context);
- };
- AstTransformer.prototype.visitCommentStmt = function (stmt, context) {
- return this.transformStmt(stmt, context);
- };
- AstTransformer.prototype.visitJSDocCommentStmt = function (stmt, context) {
- return this.transformStmt(stmt, context);
- };
- AstTransformer.prototype.visitAllStatements = function (stmts, context) {
- var _this = this;
- return stmts.map(function (stmt) { return stmt.visitStatement(_this, context); });
- };
- return AstTransformer;
-}());
-var RecursiveAstVisitor$1 = /** @class */ (function () {
- function RecursiveAstVisitor() {
- }
- RecursiveAstVisitor.prototype.visitType = function (ast, context) { return ast; };
- RecursiveAstVisitor.prototype.visitExpression = function (ast, context) {
- if (ast.type) {
- ast.type.visitType(this, context);
+ _Tokenizer.prototype._consumePrefixAndName = function () {
+ var nameOrPrefixStart = this._index;
+ var prefix = null;
+ while (this._peek !== $COLON && !isPrefixEnd(this._peek)) {
+ this._advance();
}
- return ast;
- };
- RecursiveAstVisitor.prototype.visitBuiltinType = function (type, context) { return this.visitType(type, context); };
- RecursiveAstVisitor.prototype.visitExpressionType = function (type, context) {
- type.value.visitExpression(this, context);
- return this.visitType(type, context);
- };
- RecursiveAstVisitor.prototype.visitArrayType = function (type, context) { return this.visitType(type, context); };
- RecursiveAstVisitor.prototype.visitMapType = function (type, context) { return this.visitType(type, context); };
- RecursiveAstVisitor.prototype.visitReadVarExpr = function (ast, context) {
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitWriteVarExpr = function (ast, context) {
- ast.value.visitExpression(this, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitWriteKeyExpr = function (ast, context) {
- ast.receiver.visitExpression(this, context);
- ast.index.visitExpression(this, context);
- ast.value.visitExpression(this, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitWritePropExpr = function (ast, context) {
- ast.receiver.visitExpression(this, context);
- ast.value.visitExpression(this, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitInvokeMethodExpr = function (ast, context) {
- ast.receiver.visitExpression(this, context);
- this.visitAllExpressions(ast.args, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitInvokeFunctionExpr = function (ast, context) {
- ast.fn.visitExpression(this, context);
- this.visitAllExpressions(ast.args, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitInstantiateExpr = function (ast, context) {
- ast.classExpr.visitExpression(this, context);
- this.visitAllExpressions(ast.args, context);
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitLiteralExpr = function (ast, context) {
- return this.visitExpression(ast, context);
- };
- RecursiveAstVisitor.prototype.visitExternalExpr = function (ast, context) {
- var _this = this;
- if (ast.typeParams) {
- ast.typeParams.forEach(function (type) { return type.visitType(_this, context); });
+ var nameStart;
+ if (this._peek === $COLON) {
+ this._advance();
+ prefix = this._input.substring(nameOrPrefixStart, this._index - 1);
+ nameStart = this._index;
}
- return this.visitExpression(ast, context);
+ else {
+ nameStart = nameOrPrefixStart;
+ }
+ this._requireCharCodeUntilFn(isNameEnd, this._index === nameStart ? 1 : 0);
+ var name = this._input.substring(nameStart, this._index);
+ return [prefix, name];
};
- RecursiveAstVisitor.prototype.visitConditionalExpr = function (ast, context) {
- ast.condition.visitExpression(this, context);
- ast.trueCase.visitExpression(this, context);
- ast.falseCase.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeTagOpen = function (start) {
+ var savedPos = this._savePosition();
+ var tagName;
+ var lowercaseTagName;
+ try {
+ if (!isAsciiLetter(this._peek)) {
+ throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan());
+ }
+ var nameStart = this._index;
+ this._consumeTagOpenStart(start);
+ tagName = this._input.substring(nameStart, this._index);
+ lowercaseTagName = tagName.toLowerCase();
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ while (this._peek !== $SLASH && this._peek !== $GT) {
+ this._consumeAttributeName();
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ if (this._attemptCharCode($EQ)) {
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._consumeAttributeValue();
+ }
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ }
+ this._consumeTagOpenEnd();
+ }
+ catch (e) {
+ if (e instanceof _ControlFlowError) {
+ // When the start tag is invalid, assume we want a "<"
+ this._restorePosition(savedPos);
+ // Back to back text tokens are merged at the end
+ this._beginToken(TokenType$1.TEXT, start);
+ this._endToken(['<']);
+ return;
+ }
+ throw e;
+ }
+ var contentTokenType = this._getTagDefinition(tagName).contentType;
+ if (contentTokenType === TagContentType.RAW_TEXT) {
+ this._consumeRawTextWithTagClose(lowercaseTagName, false);
+ }
+ else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) {
+ this._consumeRawTextWithTagClose(lowercaseTagName, true);
+ }
};
- RecursiveAstVisitor.prototype.visitNotExpr = function (ast, context) {
- ast.condition.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeRawTextWithTagClose = function (lowercaseTagName, decodeEntities) {
+ var _this = this;
+ var textToken = this._consumeRawText(decodeEntities, $LT, function () {
+ if (!_this._attemptCharCode($SLASH))
+ return false;
+ _this._attemptCharCodeUntilFn(isNotWhitespace);
+ if (!_this._attemptStrCaseInsensitive(lowercaseTagName))
+ return false;
+ _this._attemptCharCodeUntilFn(isNotWhitespace);
+ return _this._attemptCharCode($GT);
+ });
+ this._beginToken(TokenType$1.TAG_CLOSE, textToken.sourceSpan.end);
+ this._endToken([null, lowercaseTagName]);
};
- RecursiveAstVisitor.prototype.visitAssertNotNullExpr = function (ast, context) {
- ast.condition.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeTagOpenStart = function (start) {
+ this._beginToken(TokenType$1.TAG_OPEN_START, start);
+ var parts = this._consumePrefixAndName();
+ this._endToken(parts);
};
- RecursiveAstVisitor.prototype.visitCastExpr = function (ast, context) {
- ast.value.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeAttributeName = function () {
+ this._beginToken(TokenType$1.ATTR_NAME);
+ var prefixAndName = this._consumePrefixAndName();
+ this._endToken(prefixAndName);
};
- RecursiveAstVisitor.prototype.visitFunctionExpr = function (ast, context) {
- this.visitAllStatements(ast.statements, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeAttributeValue = function () {
+ this._beginToken(TokenType$1.ATTR_VALUE);
+ var value;
+ if (this._peek === $SQ || this._peek === $DQ) {
+ var quoteChar = this._peek;
+ this._advance();
+ var parts = [];
+ while (this._peek !== quoteChar) {
+ parts.push(this._readChar(true));
+ }
+ value = parts.join('');
+ this._advance();
+ }
+ else {
+ var valueStart = this._index;
+ this._requireCharCodeUntilFn(isNameEnd, 1);
+ value = this._input.substring(valueStart, this._index);
+ }
+ this._endToken([this._processCarriageReturns(value)]);
};
- RecursiveAstVisitor.prototype.visitBinaryOperatorExpr = function (ast, context) {
- ast.lhs.visitExpression(this, context);
- ast.rhs.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeTagOpenEnd = function () {
+ var tokenType = this._attemptCharCode($SLASH) ? TokenType$1.TAG_OPEN_END_VOID : TokenType$1.TAG_OPEN_END;
+ this._beginToken(tokenType);
+ this._requireCharCode($GT);
+ this._endToken([]);
};
- RecursiveAstVisitor.prototype.visitReadPropExpr = function (ast, context) {
- ast.receiver.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeTagClose = function (start) {
+ this._beginToken(TokenType$1.TAG_CLOSE, start);
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ var prefixAndName = this._consumePrefixAndName();
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._requireCharCode($GT);
+ this._endToken(prefixAndName);
};
- RecursiveAstVisitor.prototype.visitReadKeyExpr = function (ast, context) {
- ast.receiver.visitExpression(this, context);
- ast.index.visitExpression(this, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeExpansionFormStart = function () {
+ this._beginToken(TokenType$1.EXPANSION_FORM_START, this._getLocation());
+ this._requireCharCode($LBRACE);
+ this._endToken([]);
+ this._expansionCaseStack.push(TokenType$1.EXPANSION_FORM_START);
+ this._beginToken(TokenType$1.RAW_TEXT, this._getLocation());
+ var condition = this._readUntil($COMMA);
+ this._endToken([condition], this._getLocation());
+ this._requireCharCode($COMMA);
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._beginToken(TokenType$1.RAW_TEXT, this._getLocation());
+ var type = this._readUntil($COMMA);
+ this._endToken([type], this._getLocation());
+ this._requireCharCode($COMMA);
+ this._attemptCharCodeUntilFn(isNotWhitespace);
};
- RecursiveAstVisitor.prototype.visitLiteralArrayExpr = function (ast, context) {
- this.visitAllExpressions(ast.entries, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeExpansionCaseStart = function () {
+ this._beginToken(TokenType$1.EXPANSION_CASE_VALUE, this._getLocation());
+ var value = this._readUntil($LBRACE).trim();
+ this._endToken([value], this._getLocation());
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._beginToken(TokenType$1.EXPANSION_CASE_EXP_START, this._getLocation());
+ this._requireCharCode($LBRACE);
+ this._endToken([], this._getLocation());
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._expansionCaseStack.push(TokenType$1.EXPANSION_CASE_EXP_START);
};
- RecursiveAstVisitor.prototype.visitLiteralMapExpr = function (ast, context) {
- var _this = this;
- ast.entries.forEach(function (entry) { return entry.value.visitExpression(_this, context); });
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeExpansionCaseEnd = function () {
+ this._beginToken(TokenType$1.EXPANSION_CASE_EXP_END, this._getLocation());
+ this._requireCharCode($RBRACE);
+ this._endToken([], this._getLocation());
+ this._attemptCharCodeUntilFn(isNotWhitespace);
+ this._expansionCaseStack.pop();
};
- RecursiveAstVisitor.prototype.visitCommaExpr = function (ast, context) {
- this.visitAllExpressions(ast.parts, context);
- return this.visitExpression(ast, context);
+ _Tokenizer.prototype._consumeExpansionFormEnd = function () {
+ this._beginToken(TokenType$1.EXPANSION_FORM_END, this._getLocation());
+ this._requireCharCode($RBRACE);
+ this._endToken([]);
+ this._expansionCaseStack.pop();
};
- RecursiveAstVisitor.prototype.visitAllExpressions = function (exprs, context) {
- var _this = this;
- exprs.forEach(function (expr) { return expr.visitExpression(_this, context); });
+ _Tokenizer.prototype._consumeText = function () {
+ var start = this._getLocation();
+ this._beginToken(TokenType$1.TEXT, start);
+ var parts = [];
+ do {
+ if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) {
+ parts.push(this._interpolationConfig.start);
+ this._inInterpolation = true;
+ }
+ else if (this._interpolationConfig && this._inInterpolation &&
+ this._attemptStr(this._interpolationConfig.end)) {
+ parts.push(this._interpolationConfig.end);
+ this._inInterpolation = false;
+ }
+ else {
+ parts.push(this._readChar(true));
+ }
+ } while (!this._isTextEnd());
+ this._endToken([this._processCarriageReturns(parts.join(''))]);
};
- RecursiveAstVisitor.prototype.visitDeclareVarStmt = function (stmt, context) {
- if (stmt.value) {
- stmt.value.visitExpression(this, context);
- }
- if (stmt.type) {
- stmt.type.visitType(this, context);
+ _Tokenizer.prototype._isTextEnd = function () {
+ if (this._peek === $LT || this._peek === $EOF) {
+ return true;
}
- return stmt;
- };
- RecursiveAstVisitor.prototype.visitDeclareFunctionStmt = function (stmt, context) {
- this.visitAllStatements(stmt.statements, context);
- if (stmt.type) {
- stmt.type.visitType(this, context);
+ if (this._tokenizeIcu && !this._inInterpolation) {
+ if (isExpansionFormStart(this._input, this._index, this._interpolationConfig)) {
+ // start of an expansion form
+ return true;
+ }
+ if (this._peek === $RBRACE && this._isInExpansionCase()) {
+ // end of and expansion case
+ return true;
+ }
}
- return stmt;
+ return false;
};
- RecursiveAstVisitor.prototype.visitExpressionStmt = function (stmt, context) {
- stmt.expr.visitExpression(this, context);
- return stmt;
+ _Tokenizer.prototype._savePosition = function () {
+ return [this._peek, this._index, this._column, this._line, this.tokens.length];
};
- RecursiveAstVisitor.prototype.visitReturnStmt = function (stmt, context) {
- stmt.value.visitExpression(this, context);
- return stmt;
+ _Tokenizer.prototype._readUntil = function (char) {
+ var start = this._index;
+ this._attemptUntilChar(char);
+ return this._input.substring(start, this._index);
};
- RecursiveAstVisitor.prototype.visitDeclareClassStmt = function (stmt, context) {
- var _this = this;
- stmt.parent.visitExpression(this, context);
- stmt.getters.forEach(function (getter) { return _this.visitAllStatements(getter.body, context); });
- if (stmt.constructorMethod) {
- this.visitAllStatements(stmt.constructorMethod.body, context);
+ _Tokenizer.prototype._restorePosition = function (position) {
+ this._peek = position[0];
+ this._index = position[1];
+ this._column = position[2];
+ this._line = position[3];
+ var nbTokens = position[4];
+ if (nbTokens < this.tokens.length) {
+ // remove any extra tokens
+ this.tokens = this.tokens.slice(0, nbTokens);
}
- stmt.methods.forEach(function (method) { return _this.visitAllStatements(method.body, context); });
- return stmt;
- };
- RecursiveAstVisitor.prototype.visitIfStmt = function (stmt, context) {
- stmt.condition.visitExpression(this, context);
- this.visitAllStatements(stmt.trueCase, context);
- this.visitAllStatements(stmt.falseCase, context);
- return stmt;
- };
- RecursiveAstVisitor.prototype.visitTryCatchStmt = function (stmt, context) {
- this.visitAllStatements(stmt.bodyStmts, context);
- this.visitAllStatements(stmt.catchStmts, context);
- return stmt;
};
- RecursiveAstVisitor.prototype.visitThrowStmt = function (stmt, context) {
- stmt.error.visitExpression(this, context);
- return stmt;
+ _Tokenizer.prototype._isInExpansionCase = function () {
+ return this._expansionCaseStack.length > 0 &&
+ this._expansionCaseStack[this._expansionCaseStack.length - 1] ===
+ TokenType$1.EXPANSION_CASE_EXP_START;
};
- RecursiveAstVisitor.prototype.visitCommentStmt = function (stmt, context) { return stmt; };
- RecursiveAstVisitor.prototype.visitJSDocCommentStmt = function (stmt, context) { return stmt; };
- RecursiveAstVisitor.prototype.visitAllStatements = function (stmts, context) {
- var _this = this;
- stmts.forEach(function (stmt) { return stmt.visitStatement(_this, context); });
+ _Tokenizer.prototype._isInExpansionForm = function () {
+ return this._expansionCaseStack.length > 0 &&
+ this._expansionCaseStack[this._expansionCaseStack.length - 1] ===
+ TokenType$1.EXPANSION_FORM_START;
};
- return RecursiveAstVisitor;
+ return _Tokenizer;
}());
-function findReadVarNames(stmts) {
- var visitor = new _ReadVarVisitor();
- visitor.visitAllStatements(stmts, null);
- return visitor.varNames;
-}
-var _ReadVarVisitor = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(_ReadVarVisitor, _super);
- function _ReadVarVisitor() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.varNames = new Set();
- return _this;
- }
- _ReadVarVisitor.prototype.visitDeclareFunctionStmt = function (stmt, context) {
- // Don't descend into nested functions
- return stmt;
- };
- _ReadVarVisitor.prototype.visitDeclareClassStmt = function (stmt, context) {
- // Don't descend into nested classes
- return stmt;
- };
- _ReadVarVisitor.prototype.visitReadVarExpr = function (ast, context) {
- if (ast.name) {
- this.varNames.add(ast.name);
- }
- return null;
- };
- return _ReadVarVisitor;
-}(RecursiveAstVisitor$1));
-function collectExternalReferences(stmts) {
- var visitor = new _FindExternalReferencesVisitor();
- visitor.visitAllStatements(stmts, null);
- return visitor.externalReferences;
+function isNotWhitespace(code) {
+ return !isWhitespace(code) || code === $EOF;
}
-var _FindExternalReferencesVisitor = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(_FindExternalReferencesVisitor, _super);
- function _FindExternalReferencesVisitor() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.externalReferences = [];
- return _this;
- }
- _FindExternalReferencesVisitor.prototype.visitExternalExpr = function (e, context) {
- this.externalReferences.push(e.value);
- return _super.prototype.visitExternalExpr.call(this, e, context);
- };
- return _FindExternalReferencesVisitor;
-}(RecursiveAstVisitor$1));
-function applySourceSpanToStatementIfNeeded(stmt, sourceSpan) {
- if (!sourceSpan) {
- return stmt;
- }
- var transformer = new _ApplySourceSpanTransformer(sourceSpan);
- return stmt.visitStatement(transformer, null);
+function isNameEnd(code) {
+ return isWhitespace(code) || code === $GT || code === $SLASH ||
+ code === $SQ || code === $DQ || code === $EQ;
}
-function applySourceSpanToExpressionIfNeeded(expr, sourceSpan) {
- if (!sourceSpan) {
- return expr;
- }
- var transformer = new _ApplySourceSpanTransformer(sourceSpan);
- return expr.visitExpression(transformer, null);
+function isPrefixEnd(code) {
+ return (code < $a || $z < code) && (code < $A || $Z < code) &&
+ (code < $0 || code > $9);
}
-var _ApplySourceSpanTransformer = /** @class */ (function (_super) {
- Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(_ApplySourceSpanTransformer, _super);
- function _ApplySourceSpanTransformer(sourceSpan) {
- var _this = _super.call(this) || this;
- _this.sourceSpan = sourceSpan;
- return _this;
- }
- _ApplySourceSpanTransformer.prototype._clone = function (obj) {
- var clone = Object.create(obj.constructor.prototype);
- for (var prop in obj) {
- clone[prop] = obj[prop];
- }
- return clone;
- };
- _ApplySourceSpanTransformer.prototype.transformExpr = function (expr, context) {
- if (!expr.sourceSpan) {
- expr = this._clone(expr);
- expr.sourceSpan = this.sourceSpan;
- }
- return expr;
- };
- _ApplySourceSpanTransformer.prototype.transformStmt = function (stmt, context) {
- if (!stmt.sourceSpan) {
- stmt = this._clone(stmt);
- stmt.sourceSpan = this.sourceSpan;
- }
- return stmt;
- };
- return _ApplySourceSpanTransformer;
-}(AstTransformer$1));
-function variable(name, type, sourceSpan) {
- return new ReadVarExpr(name, type, sourceSpan);
+function isDigitEntityEnd(code) {
+ return code == $SEMICOLON || code == $EOF || !isAsciiHexDigit(code);
}
-function importExpr(id, typeParams, sourceSpan) {
- if (typeParams === void 0) { typeParams = null; }
- return new ExternalExpr(id, null, typeParams, sourceSpan);
+function isNamedEntityEnd(code) {
+ return code == $SEMICOLON || code == $EOF || !isAsciiLetter(code);
}
-function importType(id, typeParams, typeModifiers) {
- if (typeParams === void 0) { typeParams = null; }
- if (typeModifiers === void 0) { typeModifiers = null; }
- return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;
+function isExpansionFormStart(input, offset, interpolationConfig) {
+ var isInterpolationStart = interpolationConfig ? input.indexOf(interpolationConfig.start, offset) == offset : false;
+ return input.charCodeAt(offset) == $LBRACE && !isInterpolationStart;
}
-function expressionType(expr, typeModifiers) {
- if (typeModifiers === void 0) { typeModifiers = null; }
- return new ExpressionType(expr, typeModifiers);
+function isExpansionCaseStart(peek) {
+ return peek === $EQ || isAsciiLetter(peek) || isDigit(peek);
}
-function literalArr(values, type, sourceSpan) {
- return new LiteralArrayExpr(values, type, sourceSpan);
+function compareCharCodeCaseInsensitive(code1, code2) {
+ return toUpperCaseCharCode(code1) == toUpperCaseCharCode(code2);
}
-function literalMap(values, type) {
- if (type === void 0) { type = null; }
- return new LiteralMapExpr(values.map(function (e) { return new LiteralMapEntry(e.key, e.value, e.quoted); }), type, null);
+function toUpperCaseCharCode(code) {
+ return code >= $a && code <= $z ? code - $a + $A : code;
}
-function not(expr, sourceSpan) {
- return new NotExpr(expr, sourceSpan);
-}
-function assertNotNull(expr, sourceSpan) {
- return new AssertNotNull(expr, sourceSpan);
-}
-function fn(params, body, type, sourceSpan, name) {
- return new FunctionExpr(params, body, type, sourceSpan, name);
-}
-function ifStmt(condition, thenClause, elseClause) {
- return new IfStmt(condition, thenClause, elseClause);
-}
-function literal(value, type, sourceSpan) {
- return new LiteralExpr(value, type, sourceSpan);
-}
-function isNull(exp) {
- return exp instanceof LiteralExpr && exp.value === null;
-}
-/*
- * Serializes a `Tag` into a string.
- * Returns a string like " @foo {bar} baz" (note the leading whitespace before `@foo`).
- */
-function tagToString(tag) {
- var out = '';
- if (tag.tagName) {
- out += " @" + tag.tagName;
- }
- if (tag.text) {
- if (tag.text.match(/\/\*|\*\//)) {
- throw new Error('JSDoc text cannot contain "/*" and "*/"');
- }
- out += ' ' + tag.text.replace(/@/g, '\\@');
- }
- return out;
-}
-function serializeTags(tags) {
- if (tags.length === 0)
- return '';
- var out = '*\n';
- try {
- for (var tags_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
- var tag = tags_1_1.value;
- out += ' *';
- // If the tagToString is multi-line, insert " * " prefixes on subsequent lines.
- out += tagToString(tag).replace(/\n/g, '\n * ');
- out += '\n';
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- out += ' ';
- return out;
- var e_1, _a;
+function mergeTextTokens(srcTokens) {
+ var dstTokens = [];
+ var lastDstToken = undefined;
+ for (var i = 0; i < srcTokens.length; i++) {
+ var token = srcTokens[i];
+ if (lastDstToken && lastDstToken.type == TokenType$1.TEXT && token.type == TokenType$1.TEXT) {
+ lastDstToken.parts[0] += token.parts[0];
+ lastDstToken.sourceSpan.end = token.sourceSpan.end;
+ }
+ else {
+ lastDstToken = token;
+ dstTokens.push(lastDstToken);
+ }
+ }
+ return dstTokens;
}
/**
@@ -15214,158 +17099,353 @@ function serializeTags(tags) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var QUOTED_KEYS = '$quoted$';
-function convertValueToOutputAst(ctx, value, type) {
- if (type === void 0) { type = null; }
- return visitValue(value, new _ValueOutputAstTransformer(ctx), type);
-}
-var _ValueOutputAstTransformer = /** @class */ (function () {
- function _ValueOutputAstTransformer(ctx) {
- this.ctx = ctx;
+var TreeError = /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TreeError, _super);
+ function TreeError(elementName, span, msg) {
+ var _this = _super.call(this, span, msg) || this;
+ _this.elementName = elementName;
+ return _this;
}
- _ValueOutputAstTransformer.prototype.visitArray = function (arr, type) {
- var _this = this;
- return literalArr(arr.map(function (value) { return visitValue(value, _this, null); }), type);
- };
- _ValueOutputAstTransformer.prototype.visitStringMap = function (map, type) {
- var _this = this;
- var entries = [];
- var quotedSet = new Set(map && map[QUOTED_KEYS]);
- Object.keys(map).forEach(function (key) {
- entries.push(new LiteralMapEntry(key, visitValue(map[key], _this, null), quotedSet.has(key)));
- });
- return new LiteralMapExpr(entries, type);
+ TreeError.create = function (elementName, span, msg) {
+ return new TreeError(elementName, span, msg);
};
- _ValueOutputAstTransformer.prototype.visitPrimitive = function (value, type) { return literal(value, type); };
- _ValueOutputAstTransformer.prototype.visitOther = function (value, type) {
- if (value instanceof Expression) {
- return value;
- }
- else {
- return this.ctx.importExpr(value);
- }
+ return TreeError;
+}(ParseError));
+var ParseTreeResult = /** @class */ (function () {
+ function ParseTreeResult(rootNodes, errors) {
+ this.rootNodes = rootNodes;
+ this.errors = errors;
+ }
+ return ParseTreeResult;
+}());
+var Parser$1 = /** @class */ (function () {
+ function Parser(getTagDefinition) {
+ this.getTagDefinition = getTagDefinition;
+ }
+ Parser.prototype.parse = function (source, url, parseExpansionForms, interpolationConfig) {
+ if (parseExpansionForms === void 0) { parseExpansionForms = false; }
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ var tokensAndErrors = tokenize(source, url, this.getTagDefinition, parseExpansionForms, interpolationConfig);
+ var treeAndErrors = new _TreeBuilder(tokensAndErrors.tokens, this.getTagDefinition).build();
+ return new ParseTreeResult(treeAndErrors.rootNodes, tokensAndErrors.errors.concat(treeAndErrors.errors));
};
- return _ValueOutputAstTransformer;
+ return Parser;
}());
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-function mapEntry(key, value) {
- return { key: key, value: value, quoted: false };
-}
-var InjectableCompiler = /** @class */ (function () {
- function InjectableCompiler(reflector, alwaysGenerateDef) {
- this.reflector = reflector;
- this.alwaysGenerateDef = alwaysGenerateDef;
- this.tokenInjector = reflector.resolveExternalReference(Identifiers.Injector);
+var _TreeBuilder = /** @class */ (function () {
+ function _TreeBuilder(tokens, getTagDefinition) {
+ this.tokens = tokens;
+ this.getTagDefinition = getTagDefinition;
+ this._index = -1;
+ this._rootNodes = [];
+ this._errors = [];
+ this._elementStack = [];
+ this._advance();
}
- InjectableCompiler.prototype.depsArray = function (deps, ctx) {
- var _this = this;
- return deps.map(function (dep) {
- var token = dep;
- var args = [token];
- var flags = 0;
- if (Array.isArray(dep)) {
- for (var i = 0; i < dep.length; i++) {
- var v = dep[i];
- if (v) {
- if (v.ngMetadataName === 'Optional') {
- flags |= 8 /* Optional */;
- }
- else if (v.ngMetadataName === 'SkipSelf') {
- flags |= 4 /* SkipSelf */;
- }
- else if (v.ngMetadataName === 'Self') {
- flags |= 2 /* Self */;
- }
- else if (v.ngMetadataName === 'Inject') {
- token = v.token;
- }
- else {
- token = v;
- }
- }
- }
+ _TreeBuilder.prototype.build = function () {
+ while (this._peek.type !== TokenType$1.EOF) {
+ if (this._peek.type === TokenType$1.TAG_OPEN_START) {
+ this._consumeStartTag(this._advance());
}
- var tokenExpr;
- if (typeof token === 'string') {
- tokenExpr = literal(token);
+ else if (this._peek.type === TokenType$1.TAG_CLOSE) {
+ this._consumeEndTag(this._advance());
}
- else if (token === _this.tokenInjector) {
- tokenExpr = importExpr(Identifiers.INJECTOR);
+ else if (this._peek.type === TokenType$1.CDATA_START) {
+ this._closeVoidElement();
+ this._consumeCdata(this._advance());
}
- else {
- tokenExpr = ctx.importExpr(token);
+ else if (this._peek.type === TokenType$1.COMMENT_START) {
+ this._closeVoidElement();
+ this._consumeComment(this._advance());
}
- if (flags !== 0 /* Default */) {
- args = [tokenExpr, literal(flags)];
+ else if (this._peek.type === TokenType$1.TEXT || this._peek.type === TokenType$1.RAW_TEXT ||
+ this._peek.type === TokenType$1.ESCAPABLE_RAW_TEXT) {
+ this._closeVoidElement();
+ this._consumeText(this._advance());
+ }
+ else if (this._peek.type === TokenType$1.EXPANSION_FORM_START) {
+ this._consumeExpansion(this._advance());
}
else {
- args = [tokenExpr];
+ // Skip all other tokens...
+ this._advance();
}
- return importExpr(Identifiers.inject).callFn(args);
- });
+ }
+ return new ParseTreeResult(this._rootNodes, this._errors);
};
- InjectableCompiler.prototype.factoryFor = function (injectable, ctx) {
- var retValue;
- if (injectable.useExisting) {
- retValue = importExpr(Identifiers.inject).callFn([ctx.importExpr(injectable.useExisting)]);
+ _TreeBuilder.prototype._advance = function () {
+ var prev = this._peek;
+ if (this._index < this.tokens.length - 1) {
+ // Note: there is always an EOF token at the end
+ this._index++;
}
- else if (injectable.useFactory) {
- var deps = injectable.deps || [];
- if (deps.length > 0) {
- retValue = ctx.importExpr(injectable.useFactory).callFn(this.depsArray(deps, ctx));
+ this._peek = this.tokens[this._index];
+ return prev;
+ };
+ _TreeBuilder.prototype._advanceIf = function (type) {
+ if (this._peek.type === type) {
+ return this._advance();
+ }
+ return null;
+ };
+ _TreeBuilder.prototype._consumeCdata = function (startToken) {
+ this._consumeText(this._advance());
+ this._advanceIf(TokenType$1.CDATA_END);
+ };
+ _TreeBuilder.prototype._consumeComment = function (token) {
+ var text = this._advanceIf(TokenType$1.RAW_TEXT);
+ this._advanceIf(TokenType$1.COMMENT_END);
+ var value = text != null ? text.parts[0].trim() : null;
+ this._addToParent(new Comment(value, token.sourceSpan));
+ };
+ _TreeBuilder.prototype._consumeExpansion = function (token) {
+ var switchValue = this._advance();
+ var type = this._advance();
+ var cases = [];
+ // read =
+ while (this._peek.type === TokenType$1.EXPANSION_CASE_VALUE) {
+ var expCase = this._parseExpansionCase();
+ if (!expCase)
+ return; // error
+ cases.push(expCase);
+ }
+ // read the final }
+ if (this._peek.type !== TokenType$1.EXPANSION_FORM_END) {
+ this._errors.push(TreeError.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '}'."));
+ return;
+ }
+ var sourceSpan = new ParseSourceSpan(token.sourceSpan.start, this._peek.sourceSpan.end);
+ this._addToParent(new Expansion(switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan));
+ this._advance();
+ };
+ _TreeBuilder.prototype._parseExpansionCase = function () {
+ var value = this._advance();
+ // read {
+ if (this._peek.type !== TokenType$1.EXPANSION_CASE_EXP_START) {
+ this._errors.push(TreeError.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '{'."));
+ return null;
+ }
+ // read until }
+ var start = this._advance();
+ var exp = this._collectExpansionExpTokens(start);
+ if (!exp)
+ return null;
+ var end = this._advance();
+ exp.push(new Token$1(TokenType$1.EOF, [], end.sourceSpan));
+ // parse everything in between { and }
+ var parsedExp = new _TreeBuilder(exp, this.getTagDefinition).build();
+ if (parsedExp.errors.length > 0) {
+ this._errors = this._errors.concat(parsedExp.errors);
+ return null;
+ }
+ var sourceSpan = new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end);
+ var expSourceSpan = new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end);
+ return new ExpansionCase(value.parts[0], parsedExp.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan);
+ };
+ _TreeBuilder.prototype._collectExpansionExpTokens = function (start) {
+ var exp = [];
+ var expansionFormStack = [TokenType$1.EXPANSION_CASE_EXP_START];
+ while (true) {
+ if (this._peek.type === TokenType$1.EXPANSION_FORM_START ||
+ this._peek.type === TokenType$1.EXPANSION_CASE_EXP_START) {
+ expansionFormStack.push(this._peek.type);
}
- else {
- return ctx.importExpr(injectable.useFactory);
+ if (this._peek.type === TokenType$1.EXPANSION_CASE_EXP_END) {
+ if (lastOnStack(expansionFormStack, TokenType$1.EXPANSION_CASE_EXP_START)) {
+ expansionFormStack.pop();
+ if (expansionFormStack.length == 0)
+ return exp;
+ }
+ else {
+ this._errors.push(TreeError.create(null, start.sourceSpan, "Invalid ICU message. Missing '}'."));
+ return null;
+ }
+ }
+ if (this._peek.type === TokenType$1.EXPANSION_FORM_END) {
+ if (lastOnStack(expansionFormStack, TokenType$1.EXPANSION_FORM_START)) {
+ expansionFormStack.pop();
+ }
+ else {
+ this._errors.push(TreeError.create(null, start.sourceSpan, "Invalid ICU message. Missing '}'."));
+ return null;
+ }
+ }
+ if (this._peek.type === TokenType$1.EOF) {
+ this._errors.push(TreeError.create(null, start.sourceSpan, "Invalid ICU message. Missing '}'."));
+ return null;
}
+ exp.push(this._advance());
}
- else if (injectable.useValue) {
- retValue = convertValueToOutputAst(ctx, injectable.useValue);
+ };
+ _TreeBuilder.prototype._consumeText = function (token) {
+ var text = token.parts[0];
+ if (text.length > 0 && text[0] == '\n') {
+ var parent_1 = this._getParentElement();
+ if (parent_1 != null && parent_1.children.length == 0 &&
+ this.getTagDefinition(parent_1.name).ignoreFirstLf) {
+ text = text.substring(1);
+ }
}
- else {
- var clazz = injectable.useClass || injectable.symbol;
- var depArgs = this.depsArray(this.reflector.parameters(clazz), ctx);
- retValue = new InstantiateExpr(ctx.importExpr(clazz), depArgs);
+ if (text.length > 0) {
+ this._addToParent(new Text$2(text, token.sourceSpan));
}
- return fn([], [new ReturnStatement(retValue)], undefined, undefined, injectable.symbol.name + '_Factory');
};
- InjectableCompiler.prototype.injectableDef = function (injectable, ctx) {
- var providedIn = NULL_EXPR;
- if (injectable.providedIn !== undefined) {
- if (injectable.providedIn === null) {
- providedIn = NULL_EXPR;
+ _TreeBuilder.prototype._closeVoidElement = function () {
+ var el = this._getParentElement();
+ if (el && this.getTagDefinition(el.name).isVoid) {
+ this._elementStack.pop();
+ }
+ };
+ _TreeBuilder.prototype._consumeStartTag = function (startTagToken) {
+ var prefix = startTagToken.parts[0];
+ var name = startTagToken.parts[1];
+ var attrs = [];
+ while (this._peek.type === TokenType$1.ATTR_NAME) {
+ attrs.push(this._consumeAttr(this._advance()));
+ }
+ var fullName = this._getElementFullName(prefix, name, this._getParentElement());
+ var selfClosing = false;
+ // Note: There could have been a tokenizer error
+ // so that we don't get a token for the end tag...
+ if (this._peek.type === TokenType$1.TAG_OPEN_END_VOID) {
+ this._advance();
+ selfClosing = true;
+ var tagDef = this.getTagDefinition(fullName);
+ if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) {
+ this._errors.push(TreeError.create(fullName, startTagToken.sourceSpan, "Only void and foreign elements can be self closed \"" + startTagToken.parts[1] + "\""));
}
- else if (typeof injectable.providedIn === 'string') {
- providedIn = literal(injectable.providedIn);
+ }
+ else if (this._peek.type === TokenType$1.TAG_OPEN_END) {
+ this._advance();
+ selfClosing = false;
+ }
+ var end = this._peek.sourceSpan.start;
+ var span = new ParseSourceSpan(startTagToken.sourceSpan.start, end);
+ var el = new Element(fullName, attrs, [], span, span, undefined);
+ this._pushElement(el);
+ if (selfClosing) {
+ this._popElement(fullName);
+ el.endSourceSpan = span;
+ }
+ };
+ _TreeBuilder.prototype._pushElement = function (el) {
+ var parentEl = this._getParentElement();
+ if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) {
+ this._elementStack.pop();
+ }
+ var tagDef = this.getTagDefinition(el.name);
+ var _a = this._getParentElementSkippingContainers(), parent = _a.parent, container = _a.container;
+ if (parent && tagDef.requireExtraParent(parent.name)) {
+ var newParent = new Element(tagDef.parentToAdd, [], [], el.sourceSpan, el.startSourceSpan, el.endSourceSpan);
+ this._insertBeforeContainer(parent, container, newParent);
+ }
+ this._addToParent(el);
+ this._elementStack.push(el);
+ };
+ _TreeBuilder.prototype._consumeEndTag = function (endTagToken) {
+ var fullName = this._getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());
+ if (this._getParentElement()) {
+ this._getParentElement().endSourceSpan = endTagToken.sourceSpan;
+ }
+ if (this.getTagDefinition(fullName).isVoid) {
+ this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, "Void elements do not have end tags \"" + endTagToken.parts[1] + "\""));
+ }
+ else if (!this._popElement(fullName)) {
+ var errMsg = "Unexpected closing tag \"" + fullName + "\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags";
+ this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg));
+ }
+ };
+ _TreeBuilder.prototype._popElement = function (fullName) {
+ for (var stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) {
+ var el = this._elementStack[stackIndex];
+ if (el.name == fullName) {
+ this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex);
+ return true;
+ }
+ if (!this.getTagDefinition(el.name).closedByParent) {
+ return false;
+ }
+ }
+ return false;
+ };
+ _TreeBuilder.prototype._consumeAttr = function (attrName) {
+ var fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]);
+ var end = attrName.sourceSpan.end;
+ var value = '';
+ var valueSpan = undefined;
+ if (this._peek.type === TokenType$1.ATTR_VALUE) {
+ var valueToken = this._advance();
+ value = valueToken.parts[0];
+ end = valueToken.sourceSpan.end;
+ valueSpan = valueToken.sourceSpan;
+ }
+ return new Attribute(fullName, value, new ParseSourceSpan(attrName.sourceSpan.start, end), valueSpan);
+ };
+ _TreeBuilder.prototype._getParentElement = function () {
+ return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null;
+ };
+ /**
+ * Returns the parent in the DOM and the container.
+ *
+ * `` elements are skipped as they are not rendered as DOM element.
+ */
+ _TreeBuilder.prototype._getParentElementSkippingContainers = function () {
+ var container = null;
+ for (var i = this._elementStack.length - 1; i >= 0; i--) {
+ if (!isNgContainer(this._elementStack[i].name)) {
+ return { parent: this._elementStack[i], container: container };
+ }
+ container = this._elementStack[i];
+ }
+ return { parent: null, container: container };
+ };
+ _TreeBuilder.prototype._addToParent = function (node) {
+ var parent = this._getParentElement();
+ if (parent != null) {
+ parent.children.push(node);
+ }
+ else {
+ this._rootNodes.push(node);
+ }
+ };
+ /**
+ * Insert a node between the parent and the container.
+ * When no container is given, the node is appended as a child of the parent.
+ * Also updates the element stack accordingly.
+ *
+ * @internal
+ */
+ _TreeBuilder.prototype._insertBeforeContainer = function (parent, container, node) {
+ if (!container) {
+ this._addToParent(node);
+ this._elementStack.push(node);
+ }
+ else {
+ if (parent) {
+ // replace the container with the new node in the children
+ var index = parent.children.indexOf(container);
+ parent.children[index] = node;
}
else {
- providedIn = ctx.importExpr(injectable.providedIn);
+ this._rootNodes.push(node);
}
+ node.children.push(container);
+ this._elementStack.splice(this._elementStack.indexOf(container), 0, node);
}
- var def = [
- mapEntry('factory', this.factoryFor(injectable, ctx)),
- mapEntry('token', ctx.importExpr(injectable.type.reference)),
- mapEntry('providedIn', providedIn),
- ];
- return importExpr(Identifiers.defineInjectable).callFn([literalMap(def)]);
};
- InjectableCompiler.prototype.compile = function (injectable, ctx) {
- if (this.alwaysGenerateDef || injectable.providedIn !== undefined) {
- var className = identifierName(injectable.type);
- var clazz = new ClassStmt(className, null, [
- new ClassField('ngInjectableDef', INFERRED_TYPE, [StmtModifier.Static], this.injectableDef(injectable, ctx)),
- ], [], new ClassMethod(null, [], []), []);
- ctx.statements.push(clazz);
+ _TreeBuilder.prototype._getElementFullName = function (prefix, localName, parentElement) {
+ if (prefix == null) {
+ prefix = this.getTagDefinition(localName).implicitNamespacePrefix;
+ if (prefix == null && parentElement != null) {
+ prefix = getNsPrefix(parentElement.name);
+ }
}
+ return mergeNsAndName(prefix, localName);
};
- return InjectableCompiler;
+ return _TreeBuilder;
}());
+function lastOnStack(stack, element) {
+ return stack.length > 0 && stack[stack.length - 1] === element;
+}
/**
* @license
@@ -15374,60 +17454,18 @@ var InjectableCompiler = /** @class */ (function () {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var STRIP_SRC_FILE_SUFFIXES = /(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/;
-var GENERATED_FILE = /\.ngfactory\.|\.ngsummary\./;
-var JIT_SUMMARY_FILE = /\.ngsummary\./;
-var JIT_SUMMARY_NAME = /NgSummary$/;
-function ngfactoryFilePath(filePath, forceSourceFile) {
- if (forceSourceFile === void 0) { forceSourceFile = false; }
- var urlWithSuffix = splitTypescriptSuffix(filePath, forceSourceFile);
- return urlWithSuffix[0] + ".ngfactory" + normalizeGenFileSuffix(urlWithSuffix[1]);
-}
-function stripGeneratedFileSuffix(filePath) {
- return filePath.replace(GENERATED_FILE, '.');
-}
-function isGeneratedFile(filePath) {
- return GENERATED_FILE.test(filePath);
-}
-function splitTypescriptSuffix(path, forceSourceFile) {
- if (forceSourceFile === void 0) { forceSourceFile = false; }
- if (path.endsWith('.d.ts')) {
- return [path.slice(0, -5), forceSourceFile ? '.ts' : '.d.ts'];
+var HtmlParser = /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(HtmlParser, _super);
+ function HtmlParser() {
+ return _super.call(this, getHtmlTagDefinition) || this;
}
- var lastDot = path.lastIndexOf('.');
- if (lastDot !== -1) {
- return [path.substring(0, lastDot), path.substring(lastDot)];
- }
- return [path, ''];
-}
-function normalizeGenFileSuffix(srcFileSuffix) {
- return srcFileSuffix === '.tsx' ? '.ts' : srcFileSuffix;
-}
-function summaryFileName(fileName) {
- var fileNameWithoutSuffix = fileName.replace(STRIP_SRC_FILE_SUFFIXES, '');
- return fileNameWithoutSuffix + ".ngsummary.json";
-}
-function summaryForJitFileName(fileName, forceSourceFile) {
- if (forceSourceFile === void 0) { forceSourceFile = false; }
- var urlWithSuffix = splitTypescriptSuffix(stripGeneratedFileSuffix(fileName), forceSourceFile);
- return urlWithSuffix[0] + ".ngsummary" + urlWithSuffix[1];
-}
-function stripSummaryForJitFileSuffix(filePath) {
- return filePath.replace(JIT_SUMMARY_FILE, '.');
-}
-function summaryForJitName(symbolName) {
- return symbolName + "NgSummary";
-}
-function stripSummaryForJitNameSuffix(symbolName) {
- return symbolName.replace(JIT_SUMMARY_NAME, '');
-}
-var LOWERED_SYMBOL = /\u0275\d+/;
-function isLoweredSymbol(name) {
- return LOWERED_SYMBOL.test(name);
-}
-function createLoweredSymbol(id) {
- return "\u0275" + id;
-}
+ HtmlParser.prototype.parse = function (source, url, parseExpansionForms, interpolationConfig) {
+ if (parseExpansionForms === void 0) { parseExpansionForms = false; }
+ if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }
+ return _super.prototype.parse.call(this, source, url, parseExpansionForms, interpolationConfig);
+ };
+ return HtmlParser;
+}(Parser$1));
/**
* @license
@@ -15436,407 +17474,140 @@ function createLoweredSymbol(id) {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var LifecycleHooks;
-(function (LifecycleHooks) {
- LifecycleHooks[LifecycleHooks["OnInit"] = 0] = "OnInit";
- LifecycleHooks[LifecycleHooks["OnDestroy"] = 1] = "OnDestroy";
- LifecycleHooks[LifecycleHooks["DoCheck"] = 2] = "DoCheck";
- LifecycleHooks[LifecycleHooks["OnChanges"] = 3] = "OnChanges";
- LifecycleHooks[LifecycleHooks["AfterContentInit"] = 4] = "AfterContentInit";
- LifecycleHooks[LifecycleHooks["AfterContentChecked"] = 5] = "AfterContentChecked";
- LifecycleHooks[LifecycleHooks["AfterViewInit"] = 6] = "AfterViewInit";
- LifecycleHooks[LifecycleHooks["AfterViewChecked"] = 7] = "AfterViewChecked";
-})(LifecycleHooks || (LifecycleHooks = {}));
-var LIFECYCLE_HOOKS_VALUES = [
- LifecycleHooks.OnInit, LifecycleHooks.OnDestroy, LifecycleHooks.DoCheck, LifecycleHooks.OnChanges,
- LifecycleHooks.AfterContentInit, LifecycleHooks.AfterContentChecked, LifecycleHooks.AfterViewInit,
- LifecycleHooks.AfterViewChecked
-];
-function hasLifecycleHook(reflector, hook, token) {
- return reflector.hasLifecycleHook(token, getHookName(hook));
-}
-function getAllLifecycleHooks(reflector, token) {
- return LIFECYCLE_HOOKS_VALUES.filter(function (hook) { return hasLifecycleHook(reflector, hook, token); });
-}
-function getHookName(hook) {
- switch (hook) {
- case LifecycleHooks.OnInit:
- return 'ngOnInit';
- case LifecycleHooks.OnDestroy:
- return 'ngOnDestroy';
- case LifecycleHooks.DoCheck:
- return 'ngDoCheck';
- case LifecycleHooks.OnChanges:
- return 'ngOnChanges';
- case LifecycleHooks.AfterContentInit:
- return 'ngAfterContentInit';
- case LifecycleHooks.AfterContentChecked:
- return 'ngAfterContentChecked';
- case LifecycleHooks.AfterViewInit:
- return 'ngAfterViewInit';
- case LifecycleHooks.AfterViewChecked:
- return 'ngAfterViewChecked';
- }
+var PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces';
+var SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']);
+// Equivalent to \s with \u00a0 (non-breaking space) excluded.
+// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
+var WS_CHARS = ' \f\n\r\t\v\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff';
+var NO_WS_REGEXP = new RegExp("[^" + WS_CHARS + "]");
+var WS_REPLACE_REGEXP = new RegExp("[" + WS_CHARS + "]{2,}", 'g');
+function hasPreserveWhitespacesAttr(attrs) {
+ return attrs.some(function (attr) { return attr.name === PRESERVE_WS_ATTR_NAME; });
}
-
/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
+ * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see:
+ * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32
+ * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character
+ * and later on replaced by a space. We are re-implementing the same idea here.
*/
-var _SELECTOR_REGEXP = new RegExp('(\\:not\\()|' + //":not("
- '([-\\w]+)|' + // "tag"
- '(?:\\.([-\\w]+))|' + // ".class"
- // "-" should appear first in the regexp below as FF31 parses "[.-\w]" as a range
- '(?:\\[([-.\\w*]+)(?:=([\"\']?)([^\\]\"\']*)\\5)?\\])|' + // "[name]", "[name=value]",
- // "[name="value"]",
- // "[name='value']"
- '(\\))|' + // ")"
- '(\\s*,\\s*)', // ","
-'g');
+function replaceNgsp(value) {
+ // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE
+ return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' ');
+}
/**
- * A css selector contains an element name,
- * css classes and attribute/value pairs with the purpose
- * of selecting subsets out of them.
+ * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules:
+ * - consider spaces, tabs and new lines as whitespace characters;
+ * - drop text nodes consisting of whitespace characters only;
+ * - for all other text nodes replace consecutive whitespace characters with one space;
+ * - convert &ngsp; pseudo-entity to a single space;
+ *
+ * Removal and trimming of whitespaces have positive performance impact (less code to generate
+ * while compiling templates, faster view creation). At the same time it can be "destructive"
+ * in some cases (whitespaces can influence layout). Because of the potential of breaking layout
+ * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for
+ * whitespace removal. The default option for whitespace removal will be revisited in Angular 6
+ * and might be changed to "on" by default.
*/
-var CssSelector = /** @class */ (function () {
- function CssSelector() {
- this.element = null;
- this.classNames = [];
- /**
- * The selectors are encoded in pairs where:
- * - even locations are attribute names
- * - odd locations are attribute values.
- *
- * Example:
- * Selector: `[key1=value1][key2]` would parse to:
- * ```
- * ['key1', 'value1', 'key2', '']
- * ```
- */
- this.attrs = [];
- this.notSelectors = [];
+var WhitespaceVisitor = /** @class */ (function () {
+ function WhitespaceVisitor() {
}
- CssSelector.parse = function (selector) {
- var results = [];
- var _addResult = function (res, cssSel) {
- if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 &&
- cssSel.attrs.length == 0) {
- cssSel.element = '*';
- }
- res.push(cssSel);
- };
- var cssSelector = new CssSelector();
- var match;
- var current = cssSelector;
- var inNot = false;
- _SELECTOR_REGEXP.lastIndex = 0;
- while (match = _SELECTOR_REGEXP.exec(selector)) {
- if (match[1]) {
- if (inNot) {
- throw new Error('Nesting :not is not allowed in a selector');
- }
- inNot = true;
- current = new CssSelector();
- cssSelector.notSelectors.push(current);
- }
- if (match[2]) {
- current.setElement(match[2]);
- }
- if (match[3]) {
- current.addClassName(match[3]);
- }
- if (match[4]) {
- current.addAttribute(match[4], match[6]);
- }
- if (match[7]) {
- inNot = false;
- current = cssSelector;
- }
- if (match[8]) {
- if (inNot) {
- throw new Error('Multiple selectors in :not are not supported');
- }
- _addResult(results, cssSelector);
- cssSelector = current = new CssSelector();
- }
- }
- _addResult(results, cssSelector);
- return results;
- };
- CssSelector.prototype.isElementSelector = function () {
- return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&
- this.notSelectors.length === 0;
- };
- CssSelector.prototype.hasElementSelector = function () { return !!this.element; };
- CssSelector.prototype.setElement = function (element) {
- if (element === void 0) { element = null; }
- this.element = element;
- };
- /** Gets a template string for an element that matches the selector. */
- CssSelector.prototype.getMatchingElementTemplate = function () {
- var tagName = this.element || 'div';
- var classAttr = this.classNames.length > 0 ? " class=\"" + this.classNames.join(' ') + "\"" : '';
- var attrs = '';
- for (var i = 0; i < this.attrs.length; i += 2) {
- var attrName = this.attrs[i];
- var attrValue = this.attrs[i + 1] !== '' ? "=\"" + this.attrs[i + 1] + "\"" : '';
- attrs += " " + attrName + attrValue;
- }
- return getHtmlTagDefinition(tagName).isVoid ? "<" + tagName + classAttr + attrs + "/>" :
- "<" + tagName + classAttr + attrs + ">" + tagName + ">";
- };
- CssSelector.prototype.getAttrs = function () {
- var result = [];
- if (this.classNames.length > 0) {
- result.push('class', this.classNames.join(' '));
+ WhitespaceVisitor.prototype.visitElement = function (element, context) {
+ if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) {
+ // don't descent into elements where we need to preserve whitespaces
+ // but still visit all attributes to eliminate one used as a market to preserve WS
+ return new Element(element.name, visitAll(this, element.attrs), element.children, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);
}
- return result.concat(this.attrs);
+ return new Element(element.name, element.attrs, visitAll(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);
};
- CssSelector.prototype.addAttribute = function (name, value) {
- if (value === void 0) { value = ''; }
- this.attrs.push(name, value && value.toLowerCase() || '');
+ WhitespaceVisitor.prototype.visitAttribute = function (attribute, context) {
+ return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null;
};
- CssSelector.prototype.addClassName = function (name) { this.classNames.push(name.toLowerCase()); };
- CssSelector.prototype.toString = function () {
- var res = this.element || '';
- if (this.classNames) {
- this.classNames.forEach(function (klass) { return res += "." + klass; });
- }
- if (this.attrs) {
- for (var i = 0; i < this.attrs.length; i += 2) {
- var name_1 = this.attrs[i];
- var value = this.attrs[i + 1];
- res += "[" + name_1 + (value ? '=' + value : '') + "]";
- }
+ WhitespaceVisitor.prototype.visitText = function (text, context) {
+ var isNotBlank = text.value.match(NO_WS_REGEXP);
+ if (isNotBlank) {
+ return new Text$2(replaceNgsp(text.value).replace(WS_REPLACE_REGEXP, ' '), text.sourceSpan, text.i18n);
}
- this.notSelectors.forEach(function (notSelector) { return res += ":not(" + notSelector + ")"; });
- return res;
+ return null;
};
- return CssSelector;
+ WhitespaceVisitor.prototype.visitComment = function (comment, context) { return comment; };
+ WhitespaceVisitor.prototype.visitExpansion = function (expansion, context) { return expansion; };
+ WhitespaceVisitor.prototype.visitExpansionCase = function (expansionCase, context) { return expansionCase; };
+ return WhitespaceVisitor;
}());
+function removeWhitespaces(htmlAstWithErrors) {
+ return new ParseTreeResult(visitAll(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors);
+}
+
/**
- * Reads a list of CssSelectors and allows to calculate which ones
- * are contained in a given CssSelector.
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
*/
-var SelectorMatcher = /** @class */ (function () {
- function SelectorMatcher() {
- this._elementMap = new Map();
- this._elementPartialMap = new Map();
- this._classMap = new Map();
- this._classPartialMap = new Map();
- this._attrValueMap = new Map();
- this._attrValuePartialMap = new Map();
- this._listContexts = [];
+// =================================================================================================
+// =================================================================================================
+// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========
+// =================================================================================================
+// =================================================================================================
+//
+// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!
+// Reach out to mprobst for details.
+//
+// =================================================================================================
+/** Map from tagName|propertyName SecurityContext. Properties applying to all tags use '*'. */
+var _SECURITY_SCHEMA;
+function SECURITY_SCHEMA() {
+ if (!_SECURITY_SCHEMA) {
+ _SECURITY_SCHEMA = {};
+ // Case is insignificant below, all element and attribute names are lower-cased for lookup.
+ registerContext(SecurityContext.HTML, [
+ 'iframe|srcdoc',
+ '*|innerHTML',
+ '*|outerHTML',
+ ]);
+ registerContext(SecurityContext.STYLE, ['*|style']);
+ // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.
+ registerContext(SecurityContext.URL, [
+ '*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href',
+ 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action',
+ 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite',
+ 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src',
+ ]);
+ registerContext(SecurityContext.RESOURCE_URL, [
+ 'applet|code',
+ 'applet|codebase',
+ 'base|href',
+ 'embed|src',
+ 'frame|src',
+ 'head|profile',
+ 'html|manifest',
+ 'iframe|src',
+ 'link|href',
+ 'media|src',
+ 'object|codebase',
+ 'object|data',
+ 'script|src',
+ ]);
}
- SelectorMatcher.createNotMatcher = function (notSelectors) {
- var notMatcher = new SelectorMatcher();
- notMatcher.addSelectables(notSelectors, null);
- return notMatcher;
- };
- SelectorMatcher.prototype.addSelectables = function (cssSelectors, callbackCtxt) {
- var listContext = null;
- if (cssSelectors.length > 1) {
- listContext = new SelectorListContext(cssSelectors);
- this._listContexts.push(listContext);
- }
- for (var i = 0; i < cssSelectors.length; i++) {
- this._addSelectable(cssSelectors[i], callbackCtxt, listContext);
- }
- };
- /**
- * Add an object that can be found later on by calling `match`.
- * @param cssSelector A css selector
- * @param callbackCtxt An opaque object that will be given to the callback of the `match` function
- */
- SelectorMatcher.prototype._addSelectable = function (cssSelector, callbackCtxt, listContext) {
- var matcher = this;
- var element = cssSelector.element;
- var classNames = cssSelector.classNames;
- var attrs = cssSelector.attrs;
- var selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);
- if (element) {
- var isTerminal = attrs.length === 0 && classNames.length === 0;
- if (isTerminal) {
- this._addTerminal(matcher._elementMap, element, selectable);
- }
- else {
- matcher = this._addPartial(matcher._elementPartialMap, element);
- }
- }
- if (classNames) {
- for (var i = 0; i < classNames.length; i++) {
- var isTerminal = attrs.length === 0 && i === classNames.length - 1;
- var className = classNames[i];
- if (isTerminal) {
- this._addTerminal(matcher._classMap, className, selectable);
- }
- else {
- matcher = this._addPartial(matcher._classPartialMap, className);
- }
- }
- }
- if (attrs) {
- for (var i = 0; i < attrs.length; i += 2) {
- var isTerminal = i === attrs.length - 2;
- var name_2 = attrs[i];
- var value = attrs[i + 1];
- if (isTerminal) {
- var terminalMap = matcher._attrValueMap;
- var terminalValuesMap = terminalMap.get(name_2);
- if (!terminalValuesMap) {
- terminalValuesMap = new Map();
- terminalMap.set(name_2, terminalValuesMap);
- }
- this._addTerminal(terminalValuesMap, value, selectable);
- }
- else {
- var partialMap = matcher._attrValuePartialMap;
- var partialValuesMap = partialMap.get(name_2);
- if (!partialValuesMap) {
- partialValuesMap = new Map();
- partialMap.set(name_2, partialValuesMap);
- }
- matcher = this._addPartial(partialValuesMap, value);
- }
- }
- }
- };
- SelectorMatcher.prototype._addTerminal = function (map, name, selectable) {
- var terminalList = map.get(name);
- if (!terminalList) {
- terminalList = [];
- map.set(name, terminalList);
- }
- terminalList.push(selectable);
- };
- SelectorMatcher.prototype._addPartial = function (map, name) {
- var matcher = map.get(name);
- if (!matcher) {
- matcher = new SelectorMatcher();
- map.set(name, matcher);
- }
- return matcher;
- };
- /**
- * Find the objects that have been added via `addSelectable`
- * whose css selector is contained in the given css selector.
- * @param cssSelector A css selector
- * @param matchedCallback This callback will be called with the object handed into `addSelectable`
- * @return boolean true if a match was found
- */
- SelectorMatcher.prototype.match = function (cssSelector, matchedCallback) {
- var result = false;
- var element = cssSelector.element;
- var classNames = cssSelector.classNames;
- var attrs = cssSelector.attrs;
- for (var i = 0; i < this._listContexts.length; i++) {
- this._listContexts[i].alreadyMatched = false;
- }
- result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;
- result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||
- result;
- if (classNames) {
- for (var i = 0; i < classNames.length; i++) {
- var className = classNames[i];
- result =
- this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;
- result =
- this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) ||
- result;
- }
- }
- if (attrs) {
- for (var i = 0; i < attrs.length; i += 2) {
- var name_3 = attrs[i];
- var value = attrs[i + 1];
- var terminalValuesMap = this._attrValueMap.get(name_3);
- if (value) {
- result =
- this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;
- }
- result =
- this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;
- var partialValuesMap = this._attrValuePartialMap.get(name_3);
- if (value) {
- result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result;
- }
- result =
- this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;
- }
- }
- return result;
- };
- /** @internal */
- SelectorMatcher.prototype._matchTerminal = function (map, name, cssSelector, matchedCallback) {
- if (!map || typeof name !== 'string') {
- return false;
- }
- var selectables = map.get(name) || [];
- var starSelectables = map.get('*');
- if (starSelectables) {
- selectables = selectables.concat(starSelectables);
- }
- if (selectables.length === 0) {
- return false;
- }
- var selectable;
- var result = false;
- for (var i = 0; i < selectables.length; i++) {
- selectable = selectables[i];
- result = selectable.finalize(cssSelector, matchedCallback) || result;
- }
- return result;
- };
- /** @internal */
- SelectorMatcher.prototype._matchPartial = function (map, name, cssSelector, matchedCallback) {
- if (!map || typeof name !== 'string') {
- return false;
- }
- var nestedSelector = map.get(name);
- if (!nestedSelector) {
- return false;
+ return _SECURITY_SCHEMA;
+}
+function registerContext(ctx, specs) {
+ var e_1, _a;
+ try {
+ for (var specs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(specs), specs_1_1 = specs_1.next(); !specs_1_1.done; specs_1_1 = specs_1.next()) {
+ var spec = specs_1_1.value;
+ _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;
}
- // TODO(perf): get rid of recursion and measure again
- // TODO(perf): don't pass the whole selector into the recursion,
- // but only the not processed parts
- return nestedSelector.match(cssSelector, matchedCallback);
- };
- return SelectorMatcher;
-}());
-var SelectorListContext = /** @class */ (function () {
- function SelectorListContext(selectors) {
- this.selectors = selectors;
- this.alreadyMatched = false;
- }
- return SelectorListContext;
-}());
-// Store context to pass back selector and context when a selector is matched
-var SelectorContext = /** @class */ (function () {
- function SelectorContext(selector, cbContext, listContext) {
- this.selector = selector;
- this.cbContext = cbContext;
- this.listContext = listContext;
- this.notSelectors = selector.notSelectors;
}
- SelectorContext.prototype.finalize = function (cssSelector, callback) {
- var result = true;
- if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {
- var notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);
- result = !notMatcher.match(cssSelector, null);
- }
- if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {
- if (this.listContext) {
- this.listContext.alreadyMatched = true;
- }
- callback(this.selector, this.cbContext);
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (specs_1_1 && !specs_1_1.done && (_a = specs_1.return)) _a.call(specs_1);
}
- return result;
- };
- return SelectorContext;
-}());
+ finally { if (e_1) throw e_1.error; }
+ }
+}
/**
* @license
@@ -15845,1063 +17616,1624 @@ var SelectorContext = /** @class */ (function () {
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
-var ERROR_COMPONENT_TYPE = 'ngComponentType';
-// Design notes:
-// - don't lazily create metadata:
-// For some metadata, we need to do async work sometimes,
-// so the user has to kick off this loading.
-// But we want to report errors even when the async work is
-// not required to check that the user would have been able
-// to wait correctly.
-var CompileMetadataResolver = /** @class */ (function () {
- function CompileMetadataResolver(_config, _htmlParser, _ngModuleResolver, _directiveResolver, _pipeResolver, _summaryResolver, _schemaRegistry, _directiveNormalizer, _console, _staticSymbolCache, _reflector, _errorCollector) {
- this._config = _config;
- this._htmlParser = _htmlParser;
- this._ngModuleResolver = _ngModuleResolver;
- this._directiveResolver = _directiveResolver;
- this._pipeResolver = _pipeResolver;
- this._summaryResolver = _summaryResolver;
- this._schemaRegistry = _schemaRegistry;
- this._directiveNormalizer = _directiveNormalizer;
- this._console = _console;
- this._staticSymbolCache = _staticSymbolCache;
- this._reflector = _reflector;
- this._errorCollector = _errorCollector;
- this._nonNormalizedDirectiveCache = new Map();
- this._directiveCache = new Map();
- this._summaryCache = new Map();
- this._pipeCache = new Map();
- this._ngModuleCache = new Map();
- this._ngModuleOfTypes = new Map();
- this._shallowModuleCache = new Map();
+var ElementSchemaRegistry = /** @class */ (function () {
+ function ElementSchemaRegistry() {
}
- CompileMetadataResolver.prototype.getReflector = function () { return this._reflector; };
- CompileMetadataResolver.prototype.clearCacheFor = function (type) {
- var dirMeta = this._directiveCache.get(type);
- this._directiveCache.delete(type);
- this._nonNormalizedDirectiveCache.delete(type);
- this._summaryCache.delete(type);
- this._pipeCache.delete(type);
- this._ngModuleOfTypes.delete(type);
- // Clear all of the NgModule as they contain transitive information!
- this._ngModuleCache.clear();
- if (dirMeta) {
- this._directiveNormalizer.clearCacheFor(dirMeta);
+ return ElementSchemaRegistry;
+}());
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var BOOLEAN = 'boolean';
+var NUMBER = 'number';
+var STRING = 'string';
+var OBJECT = 'object';
+/**
+ * This array represents the DOM schema. It encodes inheritance, properties, and events.
+ *
+ * ## Overview
+ *
+ * Each line represents one kind of element. The `element_inheritance` and properties are joined
+ * using `element_inheritance|properties` syntax.
+ *
+ * ## Element Inheritance
+ *
+ * The `element_inheritance` can be further subdivided as `element1,element2,...^parentElement`.
+ * Here the individual elements are separated by `,` (commas). Every element in the list
+ * has identical properties.
+ *
+ * An `element` may inherit additional properties from `parentElement` If no `^parentElement` is
+ * specified then `""` (blank) element is assumed.
+ *
+ * NOTE: The blank element inherits from root `[Element]` element, the super element of all
+ * elements.
+ *
+ * NOTE an element prefix such as `:svg:` has no special meaning to the schema.
+ *
+ * ## Properties
+ *
+ * Each element has a set of properties separated by `,` (commas). Each property can be prefixed
+ * by a special character designating its type:
+ *
+ * - (no prefix): property is a string.
+ * - `*`: property represents an event.
+ * - `!`: property is a boolean.
+ * - `#`: property is a number.
+ * - `%`: property is an object.
+ *
+ * ## Query
+ *
+ * The class creates an internal squas representation which allows to easily answer the query of
+ * if a given property exist on a given element.
+ *
+ * NOTE: We don't yet support querying for types or events.
+ * NOTE: This schema is auto extracted from `schema_extractor.ts` located in the test folder,
+ * see dom_element_schema_registry_spec.ts
+ */
+// =================================================================================================
+// =================================================================================================
+// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========
+// =================================================================================================
+// =================================================================================================
+//
+// DO NOT EDIT THIS DOM SCHEMA WITHOUT A SECURITY REVIEW!
+//
+// Newly added properties must be security reviewed and assigned an appropriate SecurityContext in
+// dom_security_schema.ts. Reach out to mprobst & rjamet for details.
+//
+// =================================================================================================
+var SCHEMA = [
+ '[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +
+ /* added manually to avoid breaking changes */
+ ',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',
+ '[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
+ 'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
+ 'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',
+ ':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',
+ ':svg:graphics^:svg:|',
+ ':svg:animation^:svg:|*begin,*end,*repeat',
+ ':svg:geometry^:svg:|',
+ ':svg:componentTransferFunction^:svg:|',
+ ':svg:gradient^:svg:|',
+ ':svg:textContent^:svg:graphics|',
+ ':svg:textPositioning^:svg:textContent|',
+ 'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',
+ 'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',
+ 'audio^media|',
+ 'br^[HTMLElement]|clear',
+ 'base^[HTMLElement]|href,target',
+ 'body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink',
+ 'button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value',
+ 'canvas^[HTMLElement]|#height,#width',
+ 'content^[HTMLElement]|select',
+ 'dl^[HTMLElement]|!compact',
+ 'datalist^[HTMLElement]|',
+ 'details^[HTMLElement]|!open',
+ 'dialog^[HTMLElement]|!open,returnValue',
+ 'dir^[HTMLElement]|!compact',
+ 'div^[HTMLElement]|align',
+ 'embed^[HTMLElement]|align,height,name,src,type,width',
+ 'fieldset^[HTMLElement]|!disabled,name',
+ 'font^[HTMLElement]|color,face,size',
+ 'form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target',
+ 'frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src',
+ 'frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows',
+ 'hr^[HTMLElement]|align,color,!noShade,size,width',
+ 'head^[HTMLElement]|',
+ 'h1,h2,h3,h4,h5,h6^[HTMLElement]|align',
+ 'html^[HTMLElement]|version',
+ 'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',
+ 'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',
+ 'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',
+ 'li^[HTMLElement]|type,#value',
+ 'label^[HTMLElement]|htmlFor',
+ 'legend^[HTMLElement]|align',
+ 'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',
+ 'map^[HTMLElement]|name',
+ 'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',
+ 'menu^[HTMLElement]|!compact',
+ 'meta^[HTMLElement]|content,httpEquiv,name,scheme',
+ 'meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value',
+ 'ins,del^[HTMLElement]|cite,dateTime',
+ 'ol^[HTMLElement]|!compact,!reversed,#start,type',
+ 'object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width',
+ 'optgroup^[HTMLElement]|!disabled,label',
+ 'option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value',
+ 'output^[HTMLElement]|defaultValue,%htmlFor,name,value',
+ 'p^[HTMLElement]|align',
+ 'param^[HTMLElement]|name,type,value,valueType',
+ 'picture^[HTMLElement]|',
+ 'pre^[HTMLElement]|#width',
+ 'progress^[HTMLElement]|#max,#value',
+ 'q,blockquote,cite^[HTMLElement]|',
+ 'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',
+ 'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',
+ 'shadow^[HTMLElement]|',
+ 'slot^[HTMLElement]|name',
+ 'source^[HTMLElement]|media,sizes,src,srcset,type',
+ 'span^[HTMLElement]|',
+ 'style^[HTMLElement]|!disabled,media,type',
+ 'caption^[HTMLElement]|align',
+ 'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width',
+ 'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width',
+ 'table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width',
+ 'tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign',
+ 'tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign',
+ 'template^[HTMLElement]|',
+ 'textarea^[HTMLElement]|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap',
+ 'title^[HTMLElement]|text',
+ 'track^[HTMLElement]|!default,kind,label,src,srclang',
+ 'ul^[HTMLElement]|!compact,type',
+ 'unknown^[HTMLElement]|',
+ 'video^media|#height,poster,#width',
+ ':svg:a^:svg:graphics|',
+ ':svg:animate^:svg:animation|',
+ ':svg:animateMotion^:svg:animation|',
+ ':svg:animateTransform^:svg:animation|',
+ ':svg:circle^:svg:geometry|',
+ ':svg:clipPath^:svg:graphics|',
+ ':svg:defs^:svg:graphics|',
+ ':svg:desc^:svg:|',
+ ':svg:discard^:svg:|',
+ ':svg:ellipse^:svg:geometry|',
+ ':svg:feBlend^:svg:|',
+ ':svg:feColorMatrix^:svg:|',
+ ':svg:feComponentTransfer^:svg:|',
+ ':svg:feComposite^:svg:|',
+ ':svg:feConvolveMatrix^:svg:|',
+ ':svg:feDiffuseLighting^:svg:|',
+ ':svg:feDisplacementMap^:svg:|',
+ ':svg:feDistantLight^:svg:|',
+ ':svg:feDropShadow^:svg:|',
+ ':svg:feFlood^:svg:|',
+ ':svg:feFuncA^:svg:componentTransferFunction|',
+ ':svg:feFuncB^:svg:componentTransferFunction|',
+ ':svg:feFuncG^:svg:componentTransferFunction|',
+ ':svg:feFuncR^:svg:componentTransferFunction|',
+ ':svg:feGaussianBlur^:svg:|',
+ ':svg:feImage^:svg:|',
+ ':svg:feMerge^:svg:|',
+ ':svg:feMergeNode^:svg:|',
+ ':svg:feMorphology^:svg:|',
+ ':svg:feOffset^:svg:|',
+ ':svg:fePointLight^:svg:|',
+ ':svg:feSpecularLighting^:svg:|',
+ ':svg:feSpotLight^:svg:|',
+ ':svg:feTile^:svg:|',
+ ':svg:feTurbulence^:svg:|',
+ ':svg:filter^:svg:|',
+ ':svg:foreignObject^:svg:graphics|',
+ ':svg:g^:svg:graphics|',
+ ':svg:image^:svg:graphics|',
+ ':svg:line^:svg:geometry|',
+ ':svg:linearGradient^:svg:gradient|',
+ ':svg:mpath^:svg:|',
+ ':svg:marker^:svg:|',
+ ':svg:mask^:svg:|',
+ ':svg:metadata^:svg:|',
+ ':svg:path^:svg:geometry|',
+ ':svg:pattern^:svg:|',
+ ':svg:polygon^:svg:geometry|',
+ ':svg:polyline^:svg:geometry|',
+ ':svg:radialGradient^:svg:gradient|',
+ ':svg:rect^:svg:geometry|',
+ ':svg:svg^:svg:graphics|#currentScale,#zoomAndPan',
+ ':svg:script^:svg:|type',
+ ':svg:set^:svg:animation|',
+ ':svg:stop^:svg:|',
+ ':svg:style^:svg:|!disabled,media,title,type',
+ ':svg:switch^:svg:graphics|',
+ ':svg:symbol^:svg:|',
+ ':svg:tspan^:svg:textPositioning|',
+ ':svg:text^:svg:textPositioning|',
+ ':svg:textPath^:svg:textContent|',
+ ':svg:title^:svg:|',
+ ':svg:use^:svg:graphics|',
+ ':svg:view^:svg:|#zoomAndPan',
+ 'data^[HTMLElement]|value',
+ 'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',
+ 'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',
+ 'summary^[HTMLElement]|',
+ 'time^[HTMLElement]|dateTime',
+ ':svg:cursor^:svg:|',
+];
+var _ATTR_TO_PROP = {
+ 'class': 'className',
+ 'for': 'htmlFor',
+ 'formaction': 'formAction',
+ 'innerHtml': 'innerHTML',
+ 'readonly': 'readOnly',
+ 'tabindex': 'tabIndex',
+};
+var DomElementSchemaRegistry = /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DomElementSchemaRegistry, _super);
+ function DomElementSchemaRegistry() {
+ var _this = _super.call(this) || this;
+ _this._schema = {};
+ SCHEMA.forEach(function (encodedType) {
+ var type = {};
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(encodedType.split('|'), 2), strType = _a[0], strProperties = _a[1];
+ var properties = strProperties.split(',');
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(strType.split('^'), 2), typeNames = _b[0], superName = _b[1];
+ typeNames.split(',').forEach(function (tag) { return _this._schema[tag.toLowerCase()] = type; });
+ var superType = superName && _this._schema[superName.toLowerCase()];
+ if (superType) {
+ Object.keys(superType).forEach(function (prop) { type[prop] = superType[prop]; });
+ }
+ properties.forEach(function (property) {
+ if (property.length > 0) {
+ switch (property[0]) {
+ case '*':
+ // We don't yet support events.
+ // If ever allowing to bind to events, GO THROUGH A SECURITY REVIEW, allowing events
+ // will
+ // almost certainly introduce bad XSS vulnerabilities.
+ // type[property.substring(1)] = EVENT;
+ break;
+ case '!':
+ type[property.substring(1)] = BOOLEAN;
+ break;
+ case '#':
+ type[property.substring(1)] = NUMBER;
+ break;
+ case '%':
+ type[property.substring(1)] = OBJECT;
+ break;
+ default:
+ type[property] = STRING;
+ }
+ }
+ });
+ });
+ return _this;
+ }
+ DomElementSchemaRegistry.prototype.hasProperty = function (tagName, propName, schemaMetas) {
+ if (schemaMetas.some(function (schema) { return schema.name === NO_ERRORS_SCHEMA.name; })) {
+ return true;
}
- };
- CompileMetadataResolver.prototype.clearCache = function () {
- this._directiveCache.clear();
- this._nonNormalizedDirectiveCache.clear();
- this._summaryCache.clear();
- this._pipeCache.clear();
- this._ngModuleCache.clear();
- this._ngModuleOfTypes.clear();
- this._directiveNormalizer.clearCache();
- };
- CompileMetadataResolver.prototype._createProxyClass = function (baseType, name) {
- var delegate = null;
- var proxyClass = function () {
- if (!delegate) {
- throw new Error("Illegal state: Class " + name + " for type " + stringify(baseType) + " is not compiled yet!");
+ if (tagName.indexOf('-') > -1) {
+ if (isNgContainer(tagName) || isNgContent(tagName)) {
+ return false;
}
- return delegate.apply(this, arguments);
- };
- proxyClass.setDelegate = function (d) {
- delegate = d;
- proxyClass.prototype = d.prototype;
- };
- // Make stringify work correctly
- proxyClass.overriddenName = name;
- return proxyClass;
+ if (schemaMetas.some(function (schema) { return schema.name === CUSTOM_ELEMENTS_SCHEMA.name; })) {
+ // Can't tell now as we don't know which properties a custom element will get
+ // once it is instantiated
+ return true;
+ }
+ }
+ var elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown'];
+ return !!elementProperties[propName];
};
- CompileMetadataResolver.prototype.getGeneratedClass = function (dirType, name) {
- if (dirType instanceof StaticSymbol) {
- return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), name);
+ DomElementSchemaRegistry.prototype.hasElement = function (tagName, schemaMetas) {
+ if (schemaMetas.some(function (schema) { return schema.name === NO_ERRORS_SCHEMA.name; })) {
+ return true;
}
- else {
- return this._createProxyClass(dirType, name);
+ if (tagName.indexOf('-') > -1) {
+ if (isNgContainer(tagName) || isNgContent(tagName)) {
+ return true;
+ }
+ if (schemaMetas.some(function (schema) { return schema.name === CUSTOM_ELEMENTS_SCHEMA.name; })) {
+ // Allow any custom elements
+ return true;
+ }
}
+ return !!this._schema[tagName.toLowerCase()];
};
- CompileMetadataResolver.prototype.getComponentViewClass = function (dirType) {
- return this.getGeneratedClass(dirType, viewClassName(dirType, 0));
- };
- CompileMetadataResolver.prototype.getHostComponentViewClass = function (dirType) {
- return this.getGeneratedClass(dirType, hostViewClassName(dirType));
- };
- CompileMetadataResolver.prototype.getHostComponentType = function (dirType) {
- var name = identifierName({ reference: dirType }) + "_Host";
- if (dirType instanceof StaticSymbol) {
- return this._staticSymbolCache.get(dirType.filePath, name);
+ /**
+ * securityContext returns the security context for the given property on the given DOM tag.
+ *
+ * Tag and property name are statically known and cannot change at runtime, i.e. it is not
+ * possible to bind a value into a changing attribute or tag name.
+ *
+ * The filtering is white list based. All attributes in the schema above are assumed to have the
+ * 'NONE' security context, i.e. that they are safe inert string values. Only specific well known
+ * attack vectors are assigned their appropriate context.
+ */
+ DomElementSchemaRegistry.prototype.securityContext = function (tagName, propName, isAttribute) {
+ if (isAttribute) {
+ // NB: For security purposes, use the mapped property name, not the attribute name.
+ propName = this.getMappedPropName(propName);
}
- else {
- var HostClass = function HostClass() { };
- HostClass.overriddenName = name;
- return HostClass;
+ // Make sure comparisons are case insensitive, so that case differences between attribute and
+ // property names do not have a security impact.
+ tagName = tagName.toLowerCase();
+ propName = propName.toLowerCase();
+ var ctx = SECURITY_SCHEMA()[tagName + '|' + propName];
+ if (ctx) {
+ return ctx;
}
+ ctx = SECURITY_SCHEMA()['*|' + propName];
+ return ctx ? ctx : SecurityContext.NONE;
};
- CompileMetadataResolver.prototype.getRendererType = function (dirType) {
- if (dirType instanceof StaticSymbol) {
- return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), rendererTypeName(dirType));
+ DomElementSchemaRegistry.prototype.getMappedPropName = function (propName) { return _ATTR_TO_PROP[propName] || propName; };
+ DomElementSchemaRegistry.prototype.getDefaultComponentElementName = function () { return 'ng-component'; };
+ DomElementSchemaRegistry.prototype.validateProperty = function (name) {
+ if (name.toLowerCase().startsWith('on')) {
+ var msg = "Binding to event property '" + name + "' is disallowed for security reasons, " +
+ ("please use (" + name.slice(2) + ")=...") +
+ ("\nIf '" + name + "' is a directive input, make sure the directive is imported by the") +
+ " current module.";
+ return { error: true, msg: msg };
}
else {
- // returning an object as proxy,
- // that we fill later during runtime compilation.
- return {};
+ return { error: false };
}
};
- CompileMetadataResolver.prototype.getComponentFactory = function (selector, dirType, inputs, outputs) {
- if (dirType instanceof StaticSymbol) {
- return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), componentFactoryName(dirType));
+ DomElementSchemaRegistry.prototype.validateAttribute = function (name) {
+ if (name.toLowerCase().startsWith('on')) {
+ var msg = "Binding to event attribute '" + name + "' is disallowed for security reasons, " +
+ ("please use (" + name.slice(2) + ")=...");
+ return { error: true, msg: msg };
}
else {
- var hostView = this.getHostComponentViewClass(dirType);
- // Note: ngContentSelectors will be filled later once the template is
- // loaded.
- var createComponentFactory = this._reflector.resolveExternalReference(Identifiers.createComponentFactory);
- return createComponentFactory(selector, dirType, hostView, inputs, outputs, []);
- }
- };
- CompileMetadataResolver.prototype.initComponentFactory = function (factory, ngContentSelectors) {
- if (!(factory instanceof StaticSymbol)) {
- (_a = factory.ngContentSelectors).push.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(ngContentSelectors));
+ return { error: false };
}
- var _a;
};
- CompileMetadataResolver.prototype._loadSummary = function (type, kind) {
- var typeSummary = this._summaryCache.get(type);
- if (!typeSummary) {
- var summary = this._summaryResolver.resolveSummary(type);
- typeSummary = summary ? summary.type : null;
- this._summaryCache.set(type, typeSummary || null);
- }
- return typeSummary && typeSummary.summaryKind === kind ? typeSummary : null;
+ DomElementSchemaRegistry.prototype.allKnownElementNames = function () { return Object.keys(this._schema); };
+ DomElementSchemaRegistry.prototype.normalizeAnimationStyleProperty = function (propName) {
+ return dashCaseToCamelCase(propName);
};
- CompileMetadataResolver.prototype.getHostComponentMetadata = function (compMeta, hostViewType) {
- var hostType = this.getHostComponentType(compMeta.type.reference);
- if (!hostViewType) {
- hostViewType = this.getHostComponentViewClass(hostType);
+ DomElementSchemaRegistry.prototype.normalizeAnimationStyleValue = function (camelCaseProp, userProvidedProp, val) {
+ var unit = '';
+ var strVal = val.toString().trim();
+ var errorMsg = null;
+ if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') {
+ if (typeof val === 'number') {
+ unit = 'px';
+ }
+ else {
+ var valAndSuffixMatch = val.match(/^[+-]?[\d\.]+([a-z]*)$/);
+ if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {
+ errorMsg = "Please provide a CSS unit value for " + userProvidedProp + ":" + val;
+ }
+ }
}
- // Note: ! is ok here as this method should only be called with normalized directive
- // metadata, which always fills in the selector.
- var template = CssSelector.parse(compMeta.selector)[0].getMatchingElementTemplate();
- var templateUrl = '';
- var htmlAst = this._htmlParser.parse(template, templateUrl);
- return CompileDirectiveMetadata.create({
- isHost: true,
- type: { reference: hostType, diDeps: [], lifecycleHooks: [] },
- template: new CompileTemplateMetadata({
- encapsulation: ViewEncapsulation.None,
- template: template,
- templateUrl: templateUrl,
- htmlAst: htmlAst,
- styles: [],
- styleUrls: [],
- ngContentSelectors: [],
- animations: [],
- isInline: true,
- externalStylesheets: [],
- interpolation: null,
- preserveWhitespaces: false,
- }),
- exportAs: null,
- changeDetection: ChangeDetectionStrategy.Default,
- inputs: [],
- outputs: [],
- host: {},
- isComponent: true,
- selector: '*',
- providers: [],
- viewProviders: [],
- queries: [],
- guards: {},
- viewQueries: [],
- componentViewType: hostViewType,
- rendererType: { id: '__Host__', encapsulation: ViewEncapsulation.None, styles: [], data: {} },
- entryComponents: [],
- componentFactory: null
- });
+ return { error: errorMsg, value: strVal + unit };
};
- CompileMetadataResolver.prototype.loadDirectiveMetadata = function (ngModuleType, directiveType, isSync) {
- var _this = this;
- if (this._directiveCache.has(directiveType)) {
- return null;
- }
- directiveType = resolveForwardRef(directiveType);
- var _a = this.getNonNormalizedDirectiveMetadata(directiveType), annotation = _a.annotation, metadata = _a.metadata;
- var createDirectiveMetadata = function (templateMetadata) {
- var normalizedDirMeta = new CompileDirectiveMetadata({
- isHost: false,
- type: metadata.type,
- isComponent: metadata.isComponent,
- selector: metadata.selector,
- exportAs: metadata.exportAs,
- changeDetection: metadata.changeDetection,
- inputs: metadata.inputs,
- outputs: metadata.outputs,
- hostListeners: metadata.hostListeners,
- hostProperties: metadata.hostProperties,
- hostAttributes: metadata.hostAttributes,
- providers: metadata.providers,
- viewProviders: metadata.viewProviders,
- queries: metadata.queries,
- guards: metadata.guards,
- viewQueries: metadata.viewQueries,
- entryComponents: metadata.entryComponents,
- componentViewType: metadata.componentViewType,
- rendererType: metadata.rendererType,
- componentFactory: metadata.componentFactory,
- template: templateMetadata
+ return DomElementSchemaRegistry;
+}(ElementSchemaRegistry));
+function _isPixelDimensionStyle(prop) {
+ switch (prop) {
+ case 'width':
+ case 'height':
+ case 'minWidth':
+ case 'minHeight':
+ case 'maxWidth':
+ case 'maxHeight':
+ case 'left':
+ case 'top':
+ case 'bottom':
+ case 'right':
+ case 'fontSize':
+ case 'outlineWidth':
+ case 'outlineOffset':
+ case 'paddingTop':
+ case 'paddingLeft':
+ case 'paddingBottom':
+ case 'paddingRight':
+ case 'marginTop':
+ case 'marginLeft':
+ case 'marginBottom':
+ case 'marginRight':
+ case 'borderRadius':
+ case 'borderWidth':
+ case 'borderTopWidth':
+ case 'borderLeftWidth':
+ case 'borderRightWidth':
+ case 'borderBottomWidth':
+ case 'textIndent':
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var PROPERTY_PARTS_SEPARATOR = '.';
+var ATTRIBUTE_PREFIX = 'attr';
+var CLASS_PREFIX = 'class';
+var STYLE_PREFIX = 'style';
+var ANIMATE_PROP_PREFIX = 'animate-';
+/**
+ * Parses bindings in templates and in the directive host area.
+ */
+var BindingParser = /** @class */ (function () {
+ function BindingParser(_exprParser, _interpolationConfig, _schemaRegistry, pipes, errors) {
+ this._exprParser = _exprParser;
+ this._interpolationConfig = _interpolationConfig;
+ this._schemaRegistry = _schemaRegistry;
+ this.errors = errors;
+ this.pipesByName = null;
+ this._usedPipes = new Map();
+ // When the `pipes` parameter is `null`, do not check for used pipes
+ // This is used in IVY when we might not know the available pipes at compile time
+ if (pipes) {
+ var pipesByName_1 = new Map();
+ pipes.forEach(function (pipe) { return pipesByName_1.set(pipe.name, pipe); });
+ this.pipesByName = pipesByName_1;
+ }
+ }
+ BindingParser.prototype.getUsedPipes = function () { return Array.from(this._usedPipes.values()); };
+ BindingParser.prototype.createBoundHostProperties = function (dirMeta, sourceSpan) {
+ var _this = this;
+ if (dirMeta.hostProperties) {
+ var boundProps_1 = [];
+ Object.keys(dirMeta.hostProperties).forEach(function (propName) {
+ var expression = dirMeta.hostProperties[propName];
+ if (typeof expression === 'string') {
+ _this.parsePropertyBinding(propName, expression, true, sourceSpan, [], boundProps_1);
+ }
+ else {
+ _this._reportError("Value of the host property binding \"" + propName + "\" needs to be a string representing an expression but got \"" + expression + "\" (" + typeof expression + ")", sourceSpan);
+ }
});
- if (templateMetadata) {
- _this.initComponentFactory(metadata.componentFactory, templateMetadata.ngContentSelectors);
+ return boundProps_1;
+ }
+ return null;
+ };
+ BindingParser.prototype.createDirectiveHostPropertyAsts = function (dirMeta, elementSelector, sourceSpan) {
+ var _this = this;
+ var boundProps = this.createBoundHostProperties(dirMeta, sourceSpan);
+ return boundProps &&
+ boundProps.map(function (prop) { return _this.createBoundElementProperty(elementSelector, prop); });
+ };
+ BindingParser.prototype.createDirectiveHostEventAsts = function (dirMeta, sourceSpan) {
+ var _this = this;
+ if (dirMeta.hostListeners) {
+ var targetEvents_1 = [];
+ Object.keys(dirMeta.hostListeners).forEach(function (propName) {
+ var expression = dirMeta.hostListeners[propName];
+ if (typeof expression === 'string') {
+ _this.parseEvent(propName, expression, sourceSpan, [], targetEvents_1);
+ }
+ else {
+ _this._reportError("Value of the host listener \"" + propName + "\" needs to be a string representing an expression but got \"" + expression + "\" (" + typeof expression + ")", sourceSpan);
+ }
+ });
+ return targetEvents_1;
+ }
+ return null;
+ };
+ BindingParser.prototype.parseInterpolation = function (value, sourceSpan) {
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ var ast = this._exprParser.parseInterpolation(value, sourceInfo, this._interpolationConfig);
+ if (ast)
+ this._reportExpressionParserErrors(ast.errors, sourceSpan);
+ this._checkPipes(ast, sourceSpan);
+ return ast;
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ };
+ // Parse an inline template binding. ie `">`
+ BindingParser.prototype.parseInlineTemplateBinding = function (tplKey, tplValue, sourceSpan, targetMatchableAttrs, targetProps, targetVars) {
+ var bindings = this._parseTemplateBindings(tplKey, tplValue, sourceSpan);
+ for (var i = 0; i < bindings.length; i++) {
+ var binding = bindings[i];
+ if (binding.keyIsVar) {
+ targetVars.push(new ParsedVariable(binding.key, binding.name, sourceSpan));
}
- _this._directiveCache.set(directiveType, normalizedDirMeta);
- _this._summaryCache.set(directiveType, normalizedDirMeta.toSummary());
- return null;
- };
- if (metadata.isComponent) {
- var template = metadata.template;
- var templateMeta = this._directiveNormalizer.normalizeTemplate({
- ngModuleType: ngModuleType,
- componentType: directiveType,
- moduleUrl: this._reflector.componentModuleUrl(directiveType, annotation),
- encapsulation: template.encapsulation,
- template: template.template,
- templateUrl: template.templateUrl,
- styles: template.styles,
- styleUrls: template.styleUrls,
- animations: template.animations,
- interpolation: template.interpolation,
- preserveWhitespaces: template.preserveWhitespaces
+ else if (binding.expression) {
+ this._parsePropertyAst(binding.key, binding.expression, sourceSpan, targetMatchableAttrs, targetProps);
+ }
+ else {
+ targetMatchableAttrs.push([binding.key, '']);
+ this.parseLiteralAttr(binding.key, null, sourceSpan, targetMatchableAttrs, targetProps);
+ }
+ }
+ };
+ BindingParser.prototype._parseTemplateBindings = function (tplKey, tplValue, sourceSpan) {
+ var _this = this;
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ var bindingsResult = this._exprParser.parseTemplateBindings(tplKey, tplValue, sourceInfo);
+ this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan);
+ bindingsResult.templateBindings.forEach(function (binding) {
+ if (binding.expression) {
+ _this._checkPipes(binding.expression, sourceSpan);
+ }
});
- if (isPromise(templateMeta) && isSync) {
- this._reportError(componentStillLoadingError(directiveType), directiveType);
- return null;
+ bindingsResult.warnings.forEach(function (warning) { _this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING); });
+ return bindingsResult.templateBindings;
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return [];
+ }
+ };
+ BindingParser.prototype.parseLiteralAttr = function (name, value, sourceSpan, targetMatchableAttrs, targetProps) {
+ if (isAnimationLabel(name)) {
+ name = name.substring(1);
+ if (value) {
+ this._reportError("Assigning animation triggers via @prop=\"exp\" attributes with an expression is invalid." +
+ " Use property bindings (e.g. [@prop]=\"exp\") or use an attribute without a value (e.g. @prop) instead.", sourceSpan, ParseErrorLevel.ERROR);
}
- return SyncAsync.then(templateMeta, createDirectiveMetadata);
+ this._parseAnimation(name, value, sourceSpan, targetMatchableAttrs, targetProps);
}
else {
- // directive
- createDirectiveMetadata(null);
- return null;
+ targetProps.push(new ParsedProperty(name, this._exprParser.wrapLiteralPrimitive(value, ''), ParsedPropertyType.LITERAL_ATTR, sourceSpan));
}
};
- CompileMetadataResolver.prototype.getNonNormalizedDirectiveMetadata = function (directiveType) {
- var _this = this;
- directiveType = resolveForwardRef(directiveType);
- if (!directiveType) {
- return null;
+ BindingParser.prototype.parsePropertyBinding = function (name, expression, isHost, sourceSpan, targetMatchableAttrs, targetProps) {
+ var isAnimationProp = false;
+ if (name.startsWith(ANIMATE_PROP_PREFIX)) {
+ isAnimationProp = true;
+ name = name.substring(ANIMATE_PROP_PREFIX.length);
}
- var cacheEntry = this._nonNormalizedDirectiveCache.get(directiveType);
- if (cacheEntry) {
- return cacheEntry;
+ else if (isAnimationLabel(name)) {
+ isAnimationProp = true;
+ name = name.substring(1);
}
- var dirMeta = this._directiveResolver.resolve(directiveType, false);
- if (!dirMeta) {
- return null;
+ if (isAnimationProp) {
+ this._parseAnimation(name, expression, sourceSpan, targetMatchableAttrs, targetProps);
}
- var nonNormalizedTemplateMetadata = undefined;
- if (createComponent.isTypeOf(dirMeta)) {
- // component
- var compMeta = dirMeta;
- assertArrayOfStrings('styles', compMeta.styles);
- assertArrayOfStrings('styleUrls', compMeta.styleUrls);
- assertInterpolationSymbols('interpolation', compMeta.interpolation);
- var animations = compMeta.animations;
- nonNormalizedTemplateMetadata = new CompileTemplateMetadata({
- encapsulation: noUndefined(compMeta.encapsulation),
- template: noUndefined(compMeta.template),
- templateUrl: noUndefined(compMeta.templateUrl),
- htmlAst: null,
- styles: compMeta.styles || [],
- styleUrls: compMeta.styleUrls || [],
- animations: animations || [],
- interpolation: noUndefined(compMeta.interpolation),
- isInline: !!compMeta.template,
- externalStylesheets: [],
- ngContentSelectors: [],
- preserveWhitespaces: noUndefined(dirMeta.preserveWhitespaces),
- });
+ else {
+ this._parsePropertyAst(name, this._parseBinding(expression, isHost, sourceSpan), sourceSpan, targetMatchableAttrs, targetProps);
}
- var changeDetectionStrategy = null;
- var viewProviders = [];
- var entryComponentMetadata = [];
- var selector = dirMeta.selector;
- if (createComponent.isTypeOf(dirMeta)) {
- // Component
- var compMeta = dirMeta;
- changeDetectionStrategy = compMeta.changeDetection;
- if (compMeta.viewProviders) {
- viewProviders = this._getProvidersMetadata(compMeta.viewProviders, entryComponentMetadata, "viewProviders for \"" + stringifyType(directiveType) + "\"", [], directiveType);
- }
- if (compMeta.entryComponents) {
- entryComponentMetadata = flattenAndDedupeArray(compMeta.entryComponents)
- .map(function (type) { return _this._getEntryComponentMetadata(type); })
- .concat(entryComponentMetadata);
+ };
+ BindingParser.prototype.parsePropertyInterpolation = function (name, value, sourceSpan, targetMatchableAttrs, targetProps) {
+ var expr = this.parseInterpolation(value, sourceSpan);
+ if (expr) {
+ this._parsePropertyAst(name, expr, sourceSpan, targetMatchableAttrs, targetProps);
+ return true;
+ }
+ return false;
+ };
+ BindingParser.prototype._parsePropertyAst = function (name, ast, sourceSpan, targetMatchableAttrs, targetProps) {
+ targetMatchableAttrs.push([name, ast.source]);
+ targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.DEFAULT, sourceSpan));
+ };
+ BindingParser.prototype._parseAnimation = function (name, expression, sourceSpan, targetMatchableAttrs, targetProps) {
+ // This will occur when a @trigger is not paired with an expression.
+ // For animations it is valid to not have an expression since */void
+ // states will be applied by angular when the element is attached/detached
+ var ast = this._parseBinding(expression || 'undefined', false, sourceSpan);
+ targetMatchableAttrs.push([name, ast.source]);
+ targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.ANIMATION, sourceSpan));
+ };
+ BindingParser.prototype._parseBinding = function (value, isHostBinding, sourceSpan) {
+ var sourceInfo = (sourceSpan && sourceSpan.start || '(unknown)').toString();
+ try {
+ var ast = isHostBinding ?
+ this._exprParser.parseSimpleBinding(value, sourceInfo, this._interpolationConfig) :
+ this._exprParser.parseBinding(value, sourceInfo, this._interpolationConfig);
+ if (ast)
+ this._reportExpressionParserErrors(ast.errors, sourceSpan);
+ this._checkPipes(ast, sourceSpan);
+ return ast;
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ };
+ BindingParser.prototype.createBoundElementProperty = function (elementSelector, boundProp) {
+ if (boundProp.isAnimation) {
+ return new BoundElementProperty(boundProp.name, 4 /* Animation */, SecurityContext.NONE, boundProp.expression, null, boundProp.sourceSpan);
+ }
+ var unit = null;
+ var bindingType = undefined;
+ var boundPropertyName = null;
+ var parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR);
+ var securityContexts = undefined;
+ // Check check for special cases (prefix style, attr, class)
+ if (parts.length > 1) {
+ if (parts[0] == ATTRIBUTE_PREFIX) {
+ boundPropertyName = parts[1];
+ this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true);
+ securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, true);
+ var nsSeparatorIdx = boundPropertyName.indexOf(':');
+ if (nsSeparatorIdx > -1) {
+ var ns = boundPropertyName.substring(0, nsSeparatorIdx);
+ var name_1 = boundPropertyName.substring(nsSeparatorIdx + 1);
+ boundPropertyName = mergeNsAndName(ns, name_1);
+ }
+ bindingType = 1 /* Attribute */;
}
- if (!selector) {
- selector = this._schemaRegistry.getDefaultComponentElementName();
+ else if (parts[0] == CLASS_PREFIX) {
+ boundPropertyName = parts[1];
+ bindingType = 2 /* Class */;
+ securityContexts = [SecurityContext.NONE];
}
- }
- else {
- // Directive
- if (!selector) {
- this._reportError(syntaxError("Directive " + stringifyType(directiveType) + " has no selector, please add it!"), directiveType);
- selector = 'error';
+ else if (parts[0] == STYLE_PREFIX) {
+ unit = parts.length > 2 ? parts[2] : null;
+ boundPropertyName = parts[1];
+ bindingType = 3 /* Style */;
+ securityContexts = [SecurityContext.STYLE];
}
}
- var providers = [];
- if (dirMeta.providers != null) {
- providers = this._getProvidersMetadata(dirMeta.providers, entryComponentMetadata, "providers for \"" + stringifyType(directiveType) + "\"", [], directiveType);
+ // If not a special case, use the full property name
+ if (boundPropertyName === null) {
+ boundPropertyName = this._schemaRegistry.getMappedPropName(boundProp.name);
+ securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, false);
+ bindingType = 0 /* Property */;
+ this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, false);
}
- var queries = [];
- var viewQueries = [];
- if (dirMeta.queries != null) {
- queries = this._getQueriesMetadata(dirMeta.queries, false, directiveType);
- viewQueries = this._getQueriesMetadata(dirMeta.queries, true, directiveType);
+ return new BoundElementProperty(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan);
+ };
+ BindingParser.prototype.parseEvent = function (name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {
+ if (isAnimationLabel(name)) {
+ name = name.substr(1);
+ this._parseAnimationEvent(name, expression, sourceSpan, targetEvents);
}
- var metadata = CompileDirectiveMetadata.create({
- isHost: false,
- selector: selector,
- exportAs: noUndefined(dirMeta.exportAs),
- isComponent: !!nonNormalizedTemplateMetadata,
- type: this._getTypeMetadata(directiveType),
- template: nonNormalizedTemplateMetadata,
- changeDetection: changeDetectionStrategy,
- inputs: dirMeta.inputs || [],
- outputs: dirMeta.outputs || [],
- host: dirMeta.host || {},
- providers: providers || [],
- viewProviders: viewProviders || [],
- queries: queries || [],
- guards: dirMeta.guards || {},
- viewQueries: viewQueries || [],
- entryComponents: entryComponentMetadata,
- componentViewType: nonNormalizedTemplateMetadata ? this.getComponentViewClass(directiveType) :
- null,
- rendererType: nonNormalizedTemplateMetadata ? this.getRendererType(directiveType) : null,
- componentFactory: null
- });
- if (nonNormalizedTemplateMetadata) {
- metadata.componentFactory =
- this.getComponentFactory(selector, directiveType, metadata.inputs, metadata.outputs);
+ else {
+ this._parseRegularEvent(name, expression, sourceSpan, targetMatchableAttrs, targetEvents);
}
- cacheEntry = { metadata: metadata, annotation: dirMeta };
- this._nonNormalizedDirectiveCache.set(directiveType, cacheEntry);
- return cacheEntry;
};
- /**
- * Gets the metadata for the given directive.
- * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.
- */
- CompileMetadataResolver.prototype.getDirectiveMetadata = function (directiveType) {
- var dirMeta = this._directiveCache.get(directiveType);
- if (!dirMeta) {
- this._reportError(syntaxError("Illegal state: getDirectiveMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Directive " + stringifyType(directiveType) + "."), directiveType);
+ BindingParser.prototype._parseAnimationEvent = function (name, expression, sourceSpan, targetEvents) {
+ var matches = splitAtPeriod(name, [name, '']);
+ var eventName = matches[0];
+ var phase = matches[1].toLowerCase();
+ if (phase) {
+ switch (phase) {
+ case 'start':
+ case 'done':
+ var ast = this._parseAction(expression, sourceSpan);
+ targetEvents.push(new ParsedEvent(eventName, phase, 1 /* Animation */, ast, sourceSpan));
+ break;
+ default:
+ this._reportError("The provided animation output phase value \"" + phase + "\" for \"@" + eventName + "\" is not supported (use start or done)", sourceSpan);
+ break;
+ }
}
- return dirMeta;
- };
- CompileMetadataResolver.prototype.getDirectiveSummary = function (dirType) {
- var dirSummary = this._loadSummary(dirType, CompileSummaryKind.Directive);
- if (!dirSummary) {
- this._reportError(syntaxError("Illegal state: Could not load the summary for directive " + stringifyType(dirType) + "."), dirType);
+ else {
+ this._reportError("The animation trigger output event (@" + eventName + ") is missing its phase value name (start or done are currently supported)", sourceSpan);
}
- return dirSummary;
};
- CompileMetadataResolver.prototype.isDirective = function (type) {
- return !!this._loadSummary(type, CompileSummaryKind.Directive) ||
- this._directiveResolver.isDirective(type);
+ BindingParser.prototype._parseRegularEvent = function (name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {
+ // long format: 'target: eventName'
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(splitAtColon(name, [null, name]), 2), target = _a[0], eventName = _a[1];
+ var ast = this._parseAction(expression, sourceSpan);
+ targetMatchableAttrs.push([name, ast.source]);
+ targetEvents.push(new ParsedEvent(eventName, target, 0 /* Regular */, ast, sourceSpan));
+ // Don't detect directives for event names for now,
+ // so don't add the event name to the matchableAttrs
};
- CompileMetadataResolver.prototype.isPipe = function (type) {
- return !!this._loadSummary(type, CompileSummaryKind.Pipe) ||
- this._pipeResolver.isPipe(type);
+ BindingParser.prototype._parseAction = function (value, sourceSpan) {
+ var sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString();
+ try {
+ var ast = this._exprParser.parseAction(value, sourceInfo, this._interpolationConfig);
+ if (ast) {
+ this._reportExpressionParserErrors(ast.errors, sourceSpan);
+ }
+ if (!ast || ast.ast instanceof EmptyExpr) {
+ this._reportError("Empty expressions are not allowed", sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ this._checkPipes(ast, sourceSpan);
+ return ast;
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
};
- CompileMetadataResolver.prototype.isNgModule = function (type) {
- return !!this._loadSummary(type, CompileSummaryKind.NgModule) ||
- this._ngModuleResolver.isNgModule(type);
+ BindingParser.prototype._reportError = function (message, sourceSpan, level) {
+ if (level === void 0) { level = ParseErrorLevel.ERROR; }
+ this.errors.push(new ParseError(sourceSpan, message, level));
};
- CompileMetadataResolver.prototype.getNgModuleSummary = function (moduleType, alreadyCollecting) {
- if (alreadyCollecting === void 0) { alreadyCollecting = null; }
- var moduleSummary = this._loadSummary(moduleType, CompileSummaryKind.NgModule);
- if (!moduleSummary) {
- var moduleMeta = this.getNgModuleMetadata(moduleType, false, alreadyCollecting);
- moduleSummary = moduleMeta ? moduleMeta.toSummary() : null;
- if (moduleSummary) {
- this._summaryCache.set(moduleType, moduleSummary);
+ BindingParser.prototype._reportExpressionParserErrors = function (errors, sourceSpan) {
+ var e_1, _a;
+ try {
+ for (var errors_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(errors), errors_1_1 = errors_1.next(); !errors_1_1.done; errors_1_1 = errors_1.next()) {
+ var error$$1 = errors_1_1.value;
+ this._reportError(error$$1.message, sourceSpan);
}
}
- return moduleSummary;
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (errors_1_1 && !errors_1_1.done && (_a = errors_1.return)) _a.call(errors_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
};
- /**
- * Loads the declared directives and pipes of an NgModule.
- */
- CompileMetadataResolver.prototype.loadNgModuleDirectiveAndPipeMetadata = function (moduleType, isSync, throwIfNotFound) {
+ // Make sure all the used pipes are known in `this.pipesByName`
+ BindingParser.prototype._checkPipes = function (ast, sourceSpan) {
var _this = this;
- if (throwIfNotFound === void 0) { throwIfNotFound = true; }
- var ngModule = this.getNgModuleMetadata(moduleType, throwIfNotFound);
- var loading = [];
- if (ngModule) {
- ngModule.declaredDirectives.forEach(function (id) {
- var promise = _this.loadDirectiveMetadata(moduleType, id.reference, isSync);
- if (promise) {
- loading.push(promise);
+ if (ast && this.pipesByName) {
+ var collector = new PipeCollector();
+ ast.visit(collector);
+ collector.pipes.forEach(function (ast, pipeName) {
+ var pipeMeta = _this.pipesByName.get(pipeName);
+ if (!pipeMeta) {
+ _this._reportError("The pipe '" + pipeName + "' could not be found", new ParseSourceSpan(sourceSpan.start.moveBy(ast.span.start), sourceSpan.start.moveBy(ast.span.end)));
+ }
+ else {
+ _this._usedPipes.set(pipeName, pipeMeta);
}
});
- ngModule.declaredPipes.forEach(function (id) { return _this._loadPipeMetadata(id.reference); });
}
- return Promise.all(loading);
};
- CompileMetadataResolver.prototype.getShallowModuleMetadata = function (moduleType) {
- var compileMeta = this._shallowModuleCache.get(moduleType);
- if (compileMeta) {
- return compileMeta;
+ /**
+ * @param propName the name of the property / attribute
+ * @param sourceSpan
+ * @param isAttr true when binding to an attribute
+ */
+ BindingParser.prototype._validatePropertyOrAttributeName = function (propName, sourceSpan, isAttr) {
+ var report = isAttr ? this._schemaRegistry.validateAttribute(propName) :
+ this._schemaRegistry.validateProperty(propName);
+ if (report.error) {
+ this._reportError(report.msg, sourceSpan, ParseErrorLevel.ERROR);
}
- var ngModuleMeta = findLast(this._reflector.shallowAnnotations(moduleType), createNgModule.isTypeOf);
- compileMeta = {
- type: this._getTypeMetadata(moduleType),
- rawExports: ngModuleMeta.exports,
- rawImports: ngModuleMeta.imports,
- rawProviders: ngModuleMeta.providers,
- };
- this._shallowModuleCache.set(moduleType, compileMeta);
- return compileMeta;
};
- CompileMetadataResolver.prototype.getNgModuleMetadata = function (moduleType, throwIfNotFound, alreadyCollecting) {
- var _this = this;
- if (throwIfNotFound === void 0) { throwIfNotFound = true; }
- if (alreadyCollecting === void 0) { alreadyCollecting = null; }
- moduleType = resolveForwardRef(moduleType);
- var compileMeta = this._ngModuleCache.get(moduleType);
- if (compileMeta) {
- return compileMeta;
- }
- var meta = this._ngModuleResolver.resolve(moduleType, throwIfNotFound);
- if (!meta) {
- return null;
- }
- var declaredDirectives = [];
- var exportedNonModuleIdentifiers = [];
- var declaredPipes = [];
- var importedModules = [];
- var exportedModules = [];
- var providers = [];
- var entryComponents = [];
- var bootstrapComponents = [];
- var schemas = [];
- if (meta.imports) {
- flattenAndDedupeArray(meta.imports).forEach(function (importedType) {
- var importedModuleType = undefined;
- if (isValidType(importedType)) {
- importedModuleType = importedType;
- }
- else if (importedType && importedType.ngModule) {
- var moduleWithProviders = importedType;
- importedModuleType = moduleWithProviders.ngModule;
- if (moduleWithProviders.providers) {
- providers.push.apply(providers, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(_this._getProvidersMetadata(moduleWithProviders.providers, entryComponents, "provider for the NgModule '" + stringifyType(importedModuleType) + "'", [], importedType)));
- }
- }
- if (importedModuleType) {
- if (_this._checkSelfImport(moduleType, importedModuleType))
- return;
- if (!alreadyCollecting)
- alreadyCollecting = new Set();
- if (alreadyCollecting.has(importedModuleType)) {
- _this._reportError(syntaxError(_this._getTypeDescriptor(importedModuleType) + " '" + stringifyType(importedType) + "' is imported recursively by the module '" + stringifyType(moduleType) + "'."), moduleType);
- return;
- }
- alreadyCollecting.add(importedModuleType);
- var importedModuleSummary = _this.getNgModuleSummary(importedModuleType, alreadyCollecting);
- alreadyCollecting.delete(importedModuleType);
- if (!importedModuleSummary) {
- _this._reportError(syntaxError("Unexpected " + _this._getTypeDescriptor(importedType) + " '" + stringifyType(importedType) + "' imported by the module '" + stringifyType(moduleType) + "'. Please add a @NgModule annotation."), moduleType);
- return;
- }
- importedModules.push(importedModuleSummary);
- }
- else {
- _this._reportError(syntaxError("Unexpected value '" + stringifyType(importedType) + "' imported by the module '" + stringifyType(moduleType) + "'"), moduleType);
- return;
- }
- });
+ return BindingParser;
+}());
+var PipeCollector = /** @class */ (function (_super) {
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PipeCollector, _super);
+ function PipeCollector() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.pipes = new Map();
+ return _this;
+ }
+ PipeCollector.prototype.visitPipe = function (ast, context) {
+ this.pipes.set(ast.name, ast);
+ ast.exp.visit(this);
+ this.visitAll(ast.args, context);
+ return null;
+ };
+ return PipeCollector;
+}(RecursiveAstVisitor$1));
+function isAnimationLabel(name) {
+ return name[0] == '@';
+}
+function calcPossibleSecurityContexts(registry, selector, propName, isAttribute) {
+ var ctxs = [];
+ CssSelector.parse(selector).forEach(function (selector) {
+ var elementNames = selector.element ? [selector.element] : registry.allKnownElementNames();
+ var notElementNames = new Set(selector.notSelectors.filter(function (selector) { return selector.isElementSelector(); })
+ .map(function (selector) { return selector.element; }));
+ var possibleElementNames = elementNames.filter(function (elementName) { return !notElementNames.has(elementName); });
+ ctxs.push.apply(ctxs, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(possibleElementNames.map(function (elementName) { return registry.securityContext(elementName, propName, isAttribute); })));
+ });
+ return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort();
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var Text$3 = /** @class */ (function () {
+ function Text(value, sourceSpan) {
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ Text.prototype.visit = function (visitor) { return visitor.visitText(this); };
+ return Text;
+}());
+var BoundText = /** @class */ (function () {
+ function BoundText(value, sourceSpan, i18n) {
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ this.i18n = i18n;
+ }
+ BoundText.prototype.visit = function (visitor) { return visitor.visitBoundText(this); };
+ return BoundText;
+}());
+var TextAttribute = /** @class */ (function () {
+ function TextAttribute(name, value, sourceSpan, valueSpan, i18n) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ this.valueSpan = valueSpan;
+ this.i18n = i18n;
+ }
+ TextAttribute.prototype.visit = function (visitor) { return visitor.visitTextAttribute(this); };
+ return TextAttribute;
+}());
+var BoundAttribute = /** @class */ (function () {
+ function BoundAttribute(name, type, securityContext, value, unit, sourceSpan, i18n) {
+ this.name = name;
+ this.type = type;
+ this.securityContext = securityContext;
+ this.value = value;
+ this.unit = unit;
+ this.sourceSpan = sourceSpan;
+ this.i18n = i18n;
+ }
+ BoundAttribute.fromBoundElementProperty = function (prop, i18n) {
+ return new BoundAttribute(prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan, i18n);
+ };
+ BoundAttribute.prototype.visit = function (visitor) { return visitor.visitBoundAttribute(this); };
+ return BoundAttribute;
+}());
+var BoundEvent = /** @class */ (function () {
+ function BoundEvent(name, handler, target, phase, sourceSpan) {
+ this.name = name;
+ this.handler = handler;
+ this.target = target;
+ this.phase = phase;
+ this.sourceSpan = sourceSpan;
+ }
+ BoundEvent.fromParsedEvent = function (event) {
+ var target = event.type === 0 /* Regular */ ? event.targetOrPhase : null;
+ var phase = event.type === 1 /* Animation */ ? event.targetOrPhase : null;
+ return new BoundEvent(event.name, event.handler, target, phase, event.sourceSpan);
+ };
+ BoundEvent.prototype.visit = function (visitor) { return visitor.visitBoundEvent(this); };
+ return BoundEvent;
+}());
+var Element$1 = /** @class */ (function () {
+ function Element(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
+ this.name = name;
+ this.attributes = attributes;
+ this.inputs = inputs;
+ this.outputs = outputs;
+ this.children = children;
+ this.references = references;
+ this.sourceSpan = sourceSpan;
+ this.startSourceSpan = startSourceSpan;
+ this.endSourceSpan = endSourceSpan;
+ this.i18n = i18n;
+ }
+ Element.prototype.visit = function (visitor) { return visitor.visitElement(this); };
+ return Element;
+}());
+var Template = /** @class */ (function () {
+ function Template(attributes, inputs, outputs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
+ this.attributes = attributes;
+ this.inputs = inputs;
+ this.outputs = outputs;
+ this.children = children;
+ this.references = references;
+ this.variables = variables;
+ this.sourceSpan = sourceSpan;
+ this.startSourceSpan = startSourceSpan;
+ this.endSourceSpan = endSourceSpan;
+ this.i18n = i18n;
+ }
+ Template.prototype.visit = function (visitor) { return visitor.visitTemplate(this); };
+ return Template;
+}());
+var Content = /** @class */ (function () {
+ function Content(selectorIndex, attributes, sourceSpan, i18n) {
+ this.selectorIndex = selectorIndex;
+ this.attributes = attributes;
+ this.sourceSpan = sourceSpan;
+ this.i18n = i18n;
+ }
+ Content.prototype.visit = function (visitor) { return visitor.visitContent(this); };
+ return Content;
+}());
+var Variable = /** @class */ (function () {
+ function Variable(name, value, sourceSpan) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ Variable.prototype.visit = function (visitor) { return visitor.visitVariable(this); };
+ return Variable;
+}());
+var Reference = /** @class */ (function () {
+ function Reference(name, value, sourceSpan) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ Reference.prototype.visit = function (visitor) { return visitor.visitReference(this); };
+ return Reference;
+}());
+var Icu$1 = /** @class */ (function () {
+ function Icu(vars, placeholders, sourceSpan, i18n) {
+ this.vars = vars;
+ this.placeholders = placeholders;
+ this.sourceSpan = sourceSpan;
+ this.i18n = i18n;
+ }
+ Icu.prototype.visit = function (visitor) { return visitor.visitIcu(this); };
+ return Icu;
+}());
+function visitAll$1(visitor, nodes) {
+ var e_1, _a, e_2, _b;
+ var result = [];
+ if (visitor.visit) {
+ try {
+ for (var nodes_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
+ var node = nodes_1_1.value;
+ var newNode = visitor.visit(node) || node.visit(visitor);
+ }
}
- if (meta.exports) {
- flattenAndDedupeArray(meta.exports).forEach(function (exportedType) {
- if (!isValidType(exportedType)) {
- _this._reportError(syntaxError("Unexpected value '" + stringifyType(exportedType) + "' exported by the module '" + stringifyType(moduleType) + "'"), moduleType);
- return;
- }
- if (!alreadyCollecting)
- alreadyCollecting = new Set();
- if (alreadyCollecting.has(exportedType)) {
- _this._reportError(syntaxError(_this._getTypeDescriptor(exportedType) + " '" + stringify(exportedType) + "' is exported recursively by the module '" + stringifyType(moduleType) + "'"), moduleType);
- return;
- }
- alreadyCollecting.add(exportedType);
- var exportedModuleSummary = _this.getNgModuleSummary(exportedType, alreadyCollecting);
- alreadyCollecting.delete(exportedType);
- if (exportedModuleSummary) {
- exportedModules.push(exportedModuleSummary);
- }
- else {
- exportedNonModuleIdentifiers.push(_this._getIdentifierMetadata(exportedType));
- }
- });
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
+ }
+ finally { if (e_1) throw e_1.error; }
}
- // Note: This will be modified later, so we rely on
- // getting a new instance every time!
- var transitiveModule = this._getTransitiveNgModuleMetadata(importedModules, exportedModules);
- if (meta.declarations) {
- flattenAndDedupeArray(meta.declarations).forEach(function (declaredType) {
- if (!isValidType(declaredType)) {
- _this._reportError(syntaxError("Unexpected value '" + stringifyType(declaredType) + "' declared by the module '" + stringifyType(moduleType) + "'"), moduleType);
- return;
+ }
+ else {
+ try {
+ for (var nodes_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) {
+ var node = nodes_2_1.value;
+ var newNode = node.visit(visitor);
+ if (newNode) {
+ result.push(newNode);
}
- var declaredIdentifier = _this._getIdentifierMetadata(declaredType);
- if (_this.isDirective(declaredType)) {
- transitiveModule.addDirective(declaredIdentifier);
- declaredDirectives.push(declaredIdentifier);
- _this._addTypeToModule(declaredType, moduleType);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (nodes_2_1 && !nodes_2_1.done && (_b = nodes_2.return)) _b.call(nodes_2);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
+ return result;
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var StyleWithImports = /** @class */ (function () {
+ function StyleWithImports(style, styleUrls) {
+ this.style = style;
+ this.styleUrls = styleUrls;
+ }
+ return StyleWithImports;
+}());
+function isStyleUrlResolvable(url) {
+ if (url == null || url.length === 0 || url[0] == '/')
+ return false;
+ var schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP);
+ return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';
+}
+/**
+ * Rewrites stylesheets by resolving and removing the @import urls that
+ * are either relative or don't have a `package:` scheme
+ */
+function extractStyleUrls(resolver, baseUrl, cssText) {
+ var foundUrls = [];
+ var modifiedCssText = cssText.replace(CSS_STRIPPABLE_COMMENT_REGEXP, '')
+ .replace(CSS_IMPORT_REGEXP, function () {
+ var m = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ m[_i] = arguments[_i];
+ }
+ var url = m[1] || m[2];
+ if (!isStyleUrlResolvable(url)) {
+ // Do not attempt to resolve non-package absolute URLs with URI
+ // scheme
+ return m[0];
+ }
+ foundUrls.push(resolver.resolve(baseUrl, url));
+ return '';
+ });
+ return new StyleWithImports(modifiedCssText, foundUrls);
+}
+var CSS_IMPORT_REGEXP = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g;
+var CSS_STRIPPABLE_COMMENT_REGEXP = /\/\*(?!#\s*(?:sourceURL|sourceMappingURL)=)[\s\S]+?\*\//g;
+var URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var NG_CONTENT_SELECT_ATTR = 'select';
+var LINK_ELEMENT = 'link';
+var LINK_STYLE_REL_ATTR = 'rel';
+var LINK_STYLE_HREF_ATTR = 'href';
+var LINK_STYLE_REL_VALUE = 'stylesheet';
+var STYLE_ELEMENT = 'style';
+var SCRIPT_ELEMENT = 'script';
+var NG_NON_BINDABLE_ATTR = 'ngNonBindable';
+var NG_PROJECT_AS = 'ngProjectAs';
+function preparseElement(ast) {
+ var selectAttr = null;
+ var hrefAttr = null;
+ var relAttr = null;
+ var nonBindable = false;
+ var projectAs = '';
+ ast.attrs.forEach(function (attr) {
+ var lcAttrName = attr.name.toLowerCase();
+ if (lcAttrName == NG_CONTENT_SELECT_ATTR) {
+ selectAttr = attr.value;
+ }
+ else if (lcAttrName == LINK_STYLE_HREF_ATTR) {
+ hrefAttr = attr.value;
+ }
+ else if (lcAttrName == LINK_STYLE_REL_ATTR) {
+ relAttr = attr.value;
+ }
+ else if (attr.name == NG_NON_BINDABLE_ATTR) {
+ nonBindable = true;
+ }
+ else if (attr.name == NG_PROJECT_AS) {
+ if (attr.value.length > 0) {
+ projectAs = attr.value;
+ }
+ }
+ });
+ selectAttr = normalizeNgContentSelect(selectAttr);
+ var nodeName = ast.name.toLowerCase();
+ var type = PreparsedElementType.OTHER;
+ if (isNgContent(nodeName)) {
+ type = PreparsedElementType.NG_CONTENT;
+ }
+ else if (nodeName == STYLE_ELEMENT) {
+ type = PreparsedElementType.STYLE;
+ }
+ else if (nodeName == SCRIPT_ELEMENT) {
+ type = PreparsedElementType.SCRIPT;
+ }
+ else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) {
+ type = PreparsedElementType.STYLESHEET;
+ }
+ return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs);
+}
+var PreparsedElementType;
+(function (PreparsedElementType) {
+ PreparsedElementType[PreparsedElementType["NG_CONTENT"] = 0] = "NG_CONTENT";
+ PreparsedElementType[PreparsedElementType["STYLE"] = 1] = "STYLE";
+ PreparsedElementType[PreparsedElementType["STYLESHEET"] = 2] = "STYLESHEET";
+ PreparsedElementType[PreparsedElementType["SCRIPT"] = 3] = "SCRIPT";
+ PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER";
+})(PreparsedElementType || (PreparsedElementType = {}));
+var PreparsedElement = /** @class */ (function () {
+ function PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs) {
+ this.type = type;
+ this.selectAttr = selectAttr;
+ this.hrefAttr = hrefAttr;
+ this.nonBindable = nonBindable;
+ this.projectAs = projectAs;
+ }
+ return PreparsedElement;
+}());
+function normalizeNgContentSelect(selectAttr) {
+ if (selectAttr === null || selectAttr.length === 0) {
+ return '*';
+ }
+ return selectAttr;
+}
+
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var BIND_NAME_REGEXP = /^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/;
+// Group 1 = "bind-"
+var KW_BIND_IDX = 1;
+// Group 2 = "let-"
+var KW_LET_IDX = 2;
+// Group 3 = "ref-/#"
+var KW_REF_IDX = 3;
+// Group 4 = "on-"
+var KW_ON_IDX = 4;
+// Group 5 = "bindon-"
+var KW_BINDON_IDX = 5;
+// Group 6 = "@"
+var KW_AT_IDX = 6;
+// Group 7 = the identifier after "bind-", "let-", "ref-/#", "on-", "bindon-" or "@"
+var IDENT_KW_IDX = 7;
+// Group 8 = identifier inside [()]
+var IDENT_BANANA_BOX_IDX = 8;
+// Group 9 = identifier inside []
+var IDENT_PROPERTY_IDX = 9;
+// Group 10 = identifier inside ()
+var IDENT_EVENT_IDX = 10;
+var TEMPLATE_ATTR_PREFIX = '*';
+// Default selector used by `` if none specified
+var DEFAULT_CONTENT_SELECTOR = '*';
+function htmlAstToRender3Ast(htmlNodes, bindingParser) {
+ var transformer = new HtmlAstToIvyAst(bindingParser);
+ var ivyNodes = visitAll(transformer, htmlNodes);
+ // Errors might originate in either the binding parser or the html to ivy transformer
+ var allErrors = bindingParser.errors.concat(transformer.errors);
+ var errors = allErrors.filter(function (e) { return e.level === ParseErrorLevel.ERROR; });
+ if (errors.length > 0) {
+ var errorString = errors.join('\n');
+ throw syntaxError("Template parse errors:\n" + errorString, errors);
+ }
+ return {
+ nodes: ivyNodes,
+ errors: allErrors,
+ ngContentSelectors: transformer.ngContentSelectors,
+ hasNgContent: transformer.hasNgContent,
+ };
+}
+var HtmlAstToIvyAst = /** @class */ (function () {
+ function HtmlAstToIvyAst(bindingParser) {
+ this.bindingParser = bindingParser;
+ this.errors = [];
+ // Selectors for the `ng-content` tags. Only non `*` selectors are recorded here
+ this.ngContentSelectors = [];
+ // Any `` in the template ?
+ this.hasNgContent = false;
+ }
+ // HTML visitor
+ HtmlAstToIvyAst.prototype.visitElement = function (element) {
+ var _this = this;
+ var e_1, _a;
+ var preparsedElement = preparseElement(element);
+ if (preparsedElement.type === PreparsedElementType.SCRIPT ||
+ preparsedElement.type === PreparsedElementType.STYLE) {
+ // Skipping