@delon/abc 12.4.2 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abc.d.ts +1 -0
- package/auto-focus/{autoFocus.d.ts → auto-focus.d.ts} +1 -0
- package/auto-focus/auto-focus.directive.d.ts +7 -2
- package/auto-focus/auto-focus.module.d.ts +5 -0
- package/auto-focus/package.json +6 -7
- package/avatar-list/avatar-list-item.component.d.ts +7 -4
- package/avatar-list/avatar-list.component.d.ts +4 -1
- package/avatar-list/avatar-list.d.ts +5 -0
- package/avatar-list/avatar-list.module.d.ts +9 -0
- package/avatar-list/package.json +6 -7
- package/avatar-list/style/index.less +6 -0
- package/count-down/count-down.component.d.ts +4 -1
- package/count-down/count-down.d.ts +1 -0
- package/count-down/count-down.module.d.ts +7 -0
- package/count-down/package.json +5 -6
- package/date-picker/date-picker.d.ts +5 -0
- package/date-picker/date-picker.module.d.ts +9 -0
- package/date-picker/package.json +6 -7
- package/date-picker/public_api.d.ts +1 -0
- package/date-picker/range-shortcut.component.d.ts +3 -0
- package/date-picker/range.directive.d.ts +3 -0
- package/down-file/down-file.d.ts +5 -0
- package/down-file/down-file.directive.d.ts +5 -2
- package/down-file/down-file.module.d.ts +7 -0
- package/down-file/package.json +6 -7
- package/ellipsis/ellipsis.component.d.ts +5 -2
- package/ellipsis/ellipsis.d.ts +1 -0
- package/ellipsis/ellipsis.module.d.ts +8 -0
- package/ellipsis/package.json +5 -6
- package/ellipsis/style/index.less +4 -0
- package/error-collect/error-collect.component.d.ts +3 -0
- package/error-collect/error-collect.d.ts +5 -0
- package/error-collect/error-collect.module.d.ts +7 -0
- package/error-collect/package.json +6 -7
- package/error-collect/style/index.less +1 -0
- package/{esm2015/abc.js → esm2020/abc.mjs} +0 -0
- package/esm2020/auto-focus/auto-focus.directive.mjs +48 -0
- package/esm2020/auto-focus/auto-focus.mjs +5 -0
- package/esm2020/auto-focus/auto-focus.module.mjs +17 -0
- package/{esm2015/auto-focus/index.js → esm2020/auto-focus/index.mjs} +0 -0
- package/esm2020/avatar-list/avatar-list-item.component.mjs +26 -0
- package/esm2020/avatar-list/avatar-list.component.mjs +89 -0
- package/esm2020/avatar-list/avatar-list.mjs +5 -0
- package/esm2020/avatar-list/avatar-list.module.mjs +22 -0
- package/{esm2015/avatar-list/public_api.js → esm2020/avatar-list/public_api.mjs} +0 -0
- package/esm2020/count-down/count-down.component.mjs +45 -0
- package/{esm2015/count-down/count-down.js → esm2020/count-down/count-down.mjs} +0 -0
- package/esm2020/count-down/count-down.module.mjs +20 -0
- package/{esm2015/count-down/public_api.js → esm2020/count-down/public_api.mjs} +0 -0
- package/esm2020/date-picker/date-picker.mjs +5 -0
- package/esm2020/date-picker/date-picker.module.mjs +22 -0
- package/{esm2015/date-picker/public_api.js → esm2020/date-picker/public_api.mjs} +2 -1
- package/esm2020/date-picker/range-shortcut.component.mjs +40 -0
- package/esm2020/date-picker/range.directive.mjs +174 -0
- package/esm2020/down-file/down-file.directive.mjs +114 -0
- package/esm2020/down-file/down-file.mjs +5 -0
- package/esm2020/down-file/down-file.module.mjs +20 -0
- package/{esm2015/down-file/public_api.js → esm2020/down-file/public_api.mjs} +0 -0
- package/esm2020/ellipsis/ellipsis.component.mjs +229 -0
- package/{esm2015/ellipsis/ellipsis.js → esm2020/ellipsis/ellipsis.mjs} +0 -0
- package/esm2020/ellipsis/ellipsis.module.mjs +21 -0
- package/{esm2015/ellipsis/public_api.js → esm2020/ellipsis/public_api.mjs} +0 -0
- package/esm2020/error-collect/error-collect.component.mjs +118 -0
- package/esm2020/error-collect/error-collect.mjs +5 -0
- package/esm2020/error-collect/error-collect.module.mjs +20 -0
- package/{esm2015/error-collect/public_api.js → esm2020/error-collect/public_api.mjs} +0 -0
- package/esm2020/exception/exception.component.mjs +105 -0
- package/{esm2015/exception/exception.js → esm2020/exception/exception.mjs} +0 -0
- package/esm2020/exception/exception.module.mjs +23 -0
- package/{esm2015/exception/public_api.js → esm2020/exception/public_api.mjs} +0 -0
- package/esm2020/footer-toolbar/footer-toolbar.component.mjs +44 -0
- package/esm2020/footer-toolbar/footer-toolbar.mjs +5 -0
- package/esm2020/footer-toolbar/footer-toolbar.module.mjs +21 -0
- package/{esm2015/footer-toolbar/public_api.js → esm2020/footer-toolbar/public_api.mjs} +0 -0
- package/esm2020/full-content/full-content-toggle.directive.mjs +24 -0
- package/esm2020/full-content/full-content.component.mjs +138 -0
- package/esm2020/full-content/full-content.mjs +5 -0
- package/esm2020/full-content/full-content.module.mjs +20 -0
- package/esm2020/full-content/full-content.service.mjs +23 -0
- package/{esm2015/full-content/public_api.js → esm2020/full-content/public_api.mjs} +0 -0
- package/esm2020/global-footer/global-footer-item.component.mjs +30 -0
- package/esm2020/global-footer/global-footer.component.mjs +73 -0
- package/esm2020/global-footer/global-footer.mjs +5 -0
- package/esm2020/global-footer/global-footer.module.mjs +21 -0
- package/{esm2015/global-footer/global-footer.types.js → esm2020/global-footer/global-footer.types.mjs} +0 -0
- package/{esm2015/global-footer/public_api.js → esm2020/global-footer/public_api.mjs} +0 -0
- package/esm2020/image/image.directive.mjs +146 -0
- package/{esm2015/image/image.js → esm2020/image/image.mjs} +0 -0
- package/esm2020/image/image.module.mjs +20 -0
- package/{esm2015/image/public_api.js → esm2020/image/public_api.mjs} +0 -0
- package/{esm2015/let/index.js → esm2020/let/index.mjs} +0 -0
- package/esm2020/let/let.directive.mjs +36 -0
- package/{esm2015/let/let.js → esm2020/let/let.mjs} +0 -0
- package/esm2020/let/let.module.mjs +17 -0
- package/esm2020/loading/loading.component.mjs +26 -0
- package/{esm2015/loading/loading.js → esm2020/loading/loading.mjs} +0 -0
- package/esm2020/loading/loading.module.mjs +24 -0
- package/esm2020/loading/loading.service.mjs +88 -0
- package/{esm2015/loading/loading.types.js → esm2020/loading/loading.types.mjs} +0 -0
- package/{esm2015/loading/public_api.js → esm2020/loading/public_api.mjs} +0 -0
- package/{esm2015/lodop/lodop.js → esm2020/lodop/lodop.mjs} +0 -0
- package/esm2020/lodop/lodop.module.mjs +12 -0
- package/esm2020/lodop/lodop.service.mjs +222 -0
- package/esm2020/lodop/lodop.types.mjs +2 -0
- package/{esm2015/lodop/public_api.js → esm2020/lodop/public_api.mjs} +0 -0
- package/esm2020/media/media.component.mjs +106 -0
- package/{esm2015/media/media.js → esm2020/media/media.mjs} +0 -0
- package/esm2020/media/media.module.mjs +19 -0
- package/esm2020/media/media.service.mjs +46 -0
- package/{esm2015/media/plyr.types.js → esm2020/media/plyr.types.mjs} +0 -0
- package/{esm2015/media/public_api.js → esm2020/media/public_api.mjs} +0 -0
- package/esm2020/notice-icon/notice-icon-tab.component.mjs +34 -0
- package/esm2020/notice-icon/notice-icon.component.mjs +80 -0
- package/esm2020/notice-icon/notice-icon.mjs +5 -0
- package/esm2020/notice-icon/notice-icon.module.mjs +60 -0
- package/{esm2015/notice-icon/notice-icon.types.js → esm2020/notice-icon/notice-icon.types.mjs} +0 -0
- package/{esm2015/notice-icon/public_api.js → esm2020/notice-icon/public_api.mjs} +0 -0
- package/esm2020/onboarding/onboarding.component.mjs +134 -0
- package/{esm2015/onboarding/onboarding.js → esm2020/onboarding/onboarding.mjs} +0 -0
- package/esm2020/onboarding/onboarding.module.mjs +25 -0
- package/esm2020/onboarding/onboarding.service.mjs +185 -0
- package/{esm2015/onboarding/onboarding.types.js → esm2020/onboarding/onboarding.types.mjs} +0 -0
- package/{esm2015/onboarding/public_api.js → esm2020/onboarding/public_api.mjs} +0 -0
- package/esm2020/page-header/page-header.component.mjs +247 -0
- package/esm2020/page-header/page-header.mjs +5 -0
- package/esm2020/page-header/page-header.module.mjs +24 -0
- package/{esm2015/page-header/public_api.js → esm2020/page-header/public_api.mjs} +0 -0
- package/esm2020/pdf/pdf.component.mjs +460 -0
- package/{esm2015/pdf/pdf.config.js → esm2020/pdf/pdf.config.mjs} +2 -2
- package/{esm2015/pdf/pdf.js → esm2020/pdf/pdf.mjs} +0 -0
- package/esm2020/pdf/pdf.module.mjs +20 -0
- package/{esm2015/pdf/pdf.types.js → esm2020/pdf/pdf.types.mjs} +0 -0
- package/{esm2015/pdf/public_api.js → esm2020/pdf/public_api.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/{esm2015/qr/public_api.js → esm2020/qr/public_api.mjs} +0 -0
- package/esm2020/qr/qr.component.mjs +136 -0
- package/{esm2015/qr/qr.config.js → esm2020/qr/qr.config.mjs} +2 -2
- package/{esm2015/qr/qr.js → esm2020/qr/qr.mjs} +0 -0
- package/esm2020/qr/qr.module.mjs +19 -0
- package/{esm2015/qr/qr.types.js → esm2020/qr/qr.types.mjs} +0 -0
- package/{esm2015/quick-menu/public_api.js → esm2020/quick-menu/public_api.mjs} +0 -0
- package/esm2020/quick-menu/quick-menu.component.mjs +89 -0
- package/esm2020/quick-menu/quick-menu.mjs +5 -0
- package/esm2020/quick-menu/quick-menu.module.mjs +21 -0
- package/{esm2015/result/public_api.js → esm2020/result/public_api.mjs} +0 -0
- package/esm2020/result/result.component.mjs +61 -0
- package/{esm2015/result/result.js → esm2020/result/result.mjs} +0 -0
- package/esm2020/result/result.module.mjs +21 -0
- package/{esm2015/reuse-tab/lifecycle_hooks.js → esm2020/reuse-tab/lifecycle_hooks.mjs} +0 -0
- package/{esm2015/reuse-tab/public_api.js → esm2020/reuse-tab/public_api.mjs} +0 -0
- package/esm2020/reuse-tab/reuse-tab-context-menu.component.mjs +76 -0
- package/esm2020/reuse-tab/reuse-tab-context.component.mjs +33 -0
- package/esm2020/reuse-tab/reuse-tab-context.directive.mjs +35 -0
- package/esm2020/reuse-tab/reuse-tab-context.service.mjs +55 -0
- package/esm2020/reuse-tab/reuse-tab.component.mjs +318 -0
- package/{esm2015/reuse-tab/reuse-tab.interfaces.js → esm2020/reuse-tab/reuse-tab.interfaces.mjs} +0 -0
- package/esm2020/reuse-tab/reuse-tab.mjs +5 -0
- package/esm2020/reuse-tab/reuse-tab.module.mjs +29 -0
- package/esm2020/reuse-tab/reuse-tab.service.mjs +533 -0
- package/{esm2015/reuse-tab/reuse-tab.strategy.js → esm2020/reuse-tab/reuse-tab.strategy.mjs} +0 -0
- package/esm2020/se/public_api.mjs +5 -0
- package/esm2020/se/se-container.component.mjs +173 -0
- package/esm2020/se/se.component.mjs +233 -0
- package/esm2020/se/se.mjs +5 -0
- package/esm2020/se/se.module.mjs +23 -0
- package/{esm2015/se/se.types.js → esm2020/se/se.types.mjs} +0 -0
- package/{esm2015/sg/public_api.js → esm2020/sg/public_api.mjs} +0 -0
- package/esm2020/sg/sg-container.component.mjs +52 -0
- package/esm2020/sg/sg.component.mjs +67 -0
- package/esm2020/sg/sg.mjs +5 -0
- package/esm2020/sg/sg.module.mjs +20 -0
- package/{esm2015/st/public_api.js → esm2020/st/public_api.mjs} +0 -0
- package/esm2020/st/st-column-source.mjs +470 -0
- package/esm2020/st/st-data-source.mjs +448 -0
- package/esm2020/st/st-export.mjs +89 -0
- package/esm2020/st/st-filter.component.mjs +262 -0
- package/esm2020/st/st-row.directive.mjs +45 -0
- package/esm2020/st/st-widget-host.directive.mjs +31 -0
- package/esm2020/st/st-widget.mjs +26 -0
- package/esm2020/st/st.component.mjs +969 -0
- package/{esm2015/st/st.config.js → esm2020/st/st.config.mjs} +0 -0
- package/esm2020/st/st.interfaces.mjs +2 -0
- package/esm2020/st/st.mjs +5 -0
- package/esm2020/st/st.module.mjs +98 -0
- package/{esm2015/st/st.types.js → esm2020/st/st.types.mjs} +0 -0
- package/esm2020/sv/public_api.mjs +5 -0
- package/esm2020/sv/sv-container.component.mjs +125 -0
- package/esm2020/sv/sv-value.component.mjs +44 -0
- package/esm2020/sv/sv.component.mjs +113 -0
- package/esm2020/sv/sv.mjs +5 -0
- package/esm2020/sv/sv.module.mjs +25 -0
- package/{esm2015/tag-select/public_api.js → esm2020/tag-select/public_api.mjs} +0 -0
- package/esm2020/tag-select/tag-select.component.mjs +64 -0
- package/esm2020/tag-select/tag-select.mjs +5 -0
- package/esm2020/tag-select/tag-select.module.mjs +21 -0
- package/{esm2015/xlsx/public_api.js → esm2020/xlsx/public_api.mjs} +0 -0
- package/esm2020/xlsx/xlsx.directive.mjs +27 -0
- package/{esm2015/xlsx/xlsx.js → esm2020/xlsx/xlsx.mjs} +0 -0
- package/esm2020/xlsx/xlsx.module.mjs +19 -0
- package/esm2020/xlsx/xlsx.service.mjs +128 -0
- package/{esm2015/xlsx/xlsx.types.js → esm2020/xlsx/xlsx.types.mjs} +0 -0
- package/{esm2015/zip/public_api.js → esm2020/zip/public_api.mjs} +0 -0
- package/{esm2015/zip/zip.js → esm2020/zip/zip.mjs} +0 -0
- package/esm2020/zip/zip.module.mjs +15 -0
- package/esm2020/zip/zip.service.mjs +114 -0
- package/{esm2015/zip/zip.types.js → esm2020/zip/zip.types.mjs} +0 -0
- package/exception/exception.component.d.ts +3 -0
- package/exception/exception.d.ts +1 -0
- package/exception/exception.module.d.ts +10 -0
- package/exception/package.json +5 -6
- package/exception/style/index.less +9 -0
- package/fesm2015/{abc.js → abc.mjs} +1 -1
- package/fesm2015/abc.mjs.map +1 -0
- package/fesm2015/auto-focus.mjs +69 -0
- package/fesm2015/auto-focus.mjs.map +1 -0
- package/fesm2015/avatar-list.mjs +140 -0
- package/fesm2015/avatar-list.mjs.map +1 -0
- package/fesm2015/count-down.mjs +69 -0
- package/fesm2015/count-down.mjs.map +1 -0
- package/fesm2015/{datePicker.js → date-picker.mjs} +63 -40
- package/fesm2015/date-picker.mjs.map +1 -0
- package/fesm2015/down-file.mjs +141 -0
- package/fesm2015/down-file.mjs.map +1 -0
- package/fesm2015/ellipsis.mjs +255 -0
- package/fesm2015/ellipsis.mjs.map +1 -0
- package/fesm2015/error-collect.mjs +144 -0
- package/fesm2015/error-collect.mjs.map +1 -0
- package/fesm2015/exception.mjs +135 -0
- package/fesm2015/exception.mjs.map +1 -0
- package/fesm2015/footer-toolbar.mjs +70 -0
- package/fesm2015/footer-toolbar.mjs.map +1 -0
- package/fesm2015/full-content.mjs +202 -0
- package/fesm2015/full-content.mjs.map +1 -0
- package/fesm2015/global-footer.mjs +127 -0
- package/fesm2015/global-footer.mjs.map +1 -0
- package/fesm2015/image.mjs +165 -0
- package/fesm2015/image.mjs.map +1 -0
- package/fesm2015/let.mjs +59 -0
- package/fesm2015/let.mjs.map +1 -0
- package/fesm2015/loading.mjs +140 -0
- package/fesm2015/loading.mjs.map +1 -0
- package/fesm2015/{lodop.js → lodop.mjs} +15 -15
- package/fesm2015/lodop.mjs.map +1 -0
- package/fesm2015/media.mjs +170 -0
- package/fesm2015/media.mjs.map +1 -0
- package/fesm2015/notice-icon.mjs +173 -0
- package/fesm2015/notice-icon.mjs.map +1 -0
- package/fesm2015/onboarding.mjs +335 -0
- package/fesm2015/onboarding.mjs.map +1 -0
- package/fesm2015/page-header.mjs +277 -0
- package/fesm2015/page-header.mjs.map +1 -0
- package/fesm2015/{pdf.js → pdf.mjs} +81 -54
- package/fesm2015/pdf.mjs.map +1 -0
- package/fesm2015/qr.mjs +171 -0
- package/fesm2015/qr.mjs.map +1 -0
- package/fesm2015/quick-menu.mjs +114 -0
- package/fesm2015/quick-menu.mjs.map +1 -0
- package/fesm2015/result.mjs +89 -0
- package/fesm2015/result.mjs.map +1 -0
- package/fesm2015/{reuseTab.js → reuse-tab.mjs} +183 -160
- package/fesm2015/reuse-tab.mjs.map +1 -0
- package/fesm2015/se.mjs +443 -0
- package/fesm2015/se.mjs.map +1 -0
- package/fesm2015/sg.mjs +139 -0
- package/fesm2015/sg.mjs.map +1 -0
- package/fesm2015/{table.js → st.mjs} +597 -483
- package/fesm2015/st.mjs.map +1 -0
- package/fesm2015/sv.mjs +302 -0
- package/fesm2015/sv.mjs.map +1 -0
- package/fesm2015/tag-select.mjs +92 -0
- package/fesm2015/tag-select.mjs.map +1 -0
- package/fesm2015/{xlsx.js → xlsx.mjs} +42 -42
- package/fesm2015/xlsx.mjs.map +1 -0
- package/fesm2015/{zip.js → zip.mjs} +35 -32
- package/fesm2015/zip.mjs.map +1 -0
- package/fesm2020/abc.mjs +7 -0
- package/fesm2020/abc.mjs.map +1 -0
- package/fesm2020/auto-focus.mjs +69 -0
- package/fesm2020/auto-focus.mjs.map +1 -0
- package/fesm2020/avatar-list.mjs +137 -0
- package/fesm2020/avatar-list.mjs.map +1 -0
- package/fesm2020/count-down.mjs +69 -0
- package/fesm2020/count-down.mjs.map +1 -0
- package/fesm2020/date-picker.mjs +236 -0
- package/fesm2020/date-picker.mjs.map +1 -0
- package/fesm2020/down-file.mjs +138 -0
- package/fesm2020/down-file.mjs.map +1 -0
- package/fesm2020/ellipsis.mjs +253 -0
- package/fesm2020/ellipsis.mjs.map +1 -0
- package/fesm2020/error-collect.mjs +141 -0
- package/fesm2020/error-collect.mjs.map +1 -0
- package/fesm2020/exception.mjs +132 -0
- package/fesm2020/exception.mjs.map +1 -0
- package/fesm2020/footer-toolbar.mjs +68 -0
- package/fesm2020/footer-toolbar.mjs.map +1 -0
- package/fesm2020/full-content.mjs +199 -0
- package/fesm2020/full-content.mjs.map +1 -0
- package/fesm2020/global-footer.mjs +124 -0
- package/fesm2020/global-footer.mjs.map +1 -0
- package/fesm2020/image.mjs +170 -0
- package/fesm2020/image.mjs.map +1 -0
- package/fesm2020/let.mjs +57 -0
- package/fesm2020/let.mjs.map +1 -0
- package/fesm2020/loading.mjs +138 -0
- package/fesm2020/loading.mjs.map +1 -0
- package/fesm2020/lodop.mjs +239 -0
- package/fesm2020/lodop.mjs.map +1 -0
- package/fesm2020/media.mjs +172 -0
- package/fesm2020/media.mjs.map +1 -0
- package/fesm2020/notice-icon.mjs +173 -0
- package/fesm2020/notice-icon.mjs.map +1 -0
- package/fesm2020/onboarding.mjs +343 -0
- package/fesm2020/onboarding.mjs.map +1 -0
- package/fesm2020/page-header.mjs +274 -0
- package/fesm2020/page-header.mjs.map +1 -0
- package/fesm2020/pdf.mjs +506 -0
- package/fesm2020/pdf.mjs.map +1 -0
- package/fesm2020/qr.mjs +171 -0
- package/fesm2020/qr.mjs.map +1 -0
- package/fesm2020/quick-menu.mjs +114 -0
- package/fesm2020/quick-menu.mjs.map +1 -0
- package/fesm2020/result.mjs +86 -0
- package/fesm2020/result.mjs.map +1 -0
- package/fesm2020/reuse-tab.mjs +1106 -0
- package/fesm2020/reuse-tab.mjs.map +1 -0
- package/fesm2020/se.mjs +436 -0
- package/fesm2020/se.mjs.map +1 -0
- package/fesm2020/sg.mjs +137 -0
- package/fesm2020/sg.mjs.map +1 -0
- package/fesm2020/st.mjs +2469 -0
- package/fesm2020/st.mjs.map +1 -0
- package/fesm2020/sv.mjs +298 -0
- package/fesm2020/sv.mjs.map +1 -0
- package/fesm2020/tag-select.mjs +89 -0
- package/fesm2020/tag-select.mjs.map +1 -0
- package/fesm2020/xlsx.mjs +175 -0
- package/fesm2020/xlsx.mjs.map +1 -0
- package/fesm2020/zip.mjs +134 -0
- package/fesm2020/zip.mjs.map +1 -0
- package/footer-toolbar/footer-toolbar.component.d.ts +4 -1
- package/footer-toolbar/footer-toolbar.d.ts +5 -0
- package/footer-toolbar/footer-toolbar.module.d.ts +8 -0
- package/footer-toolbar/package.json +6 -7
- package/footer-toolbar/style/index.less +1 -0
- package/full-content/full-content-toggle.directive.d.ts +3 -0
- package/full-content/full-content.component.d.ts +6 -3
- package/full-content/full-content.d.ts +5 -0
- package/full-content/full-content.module.d.ts +7 -0
- package/full-content/full-content.service.d.ts +3 -0
- package/full-content/package.json +6 -7
- package/full-content/style/index.less +1 -0
- package/global-footer/global-footer-item.component.d.ts +5 -2
- package/global-footer/global-footer.component.d.ts +3 -0
- package/global-footer/global-footer.d.ts +5 -0
- package/global-footer/global-footer.module.d.ts +8 -0
- package/global-footer/package.json +6 -7
- package/global-footer/style/index.less +5 -0
- package/image/image.d.ts +1 -0
- package/image/image.directive.d.ts +4 -1
- package/image/image.module.d.ts +7 -0
- package/image/package.json +5 -6
- package/let/let.d.ts +1 -0
- package/let/let.directive.d.ts +3 -0
- package/let/let.module.d.ts +5 -0
- package/let/package.json +5 -6
- package/loading/loading.component.d.ts +3 -0
- package/loading/loading.d.ts +1 -0
- package/loading/loading.module.d.ts +10 -0
- package/loading/loading.service.d.ts +4 -1
- package/loading/package.json +5 -6
- package/loading/style/index.less +3 -0
- package/lodop/lodop.d.ts +1 -0
- package/lodop/lodop.module.d.ts +4 -0
- package/lodop/lodop.service.d.ts +3 -0
- package/lodop/lodop.types.d.ts +4 -0
- package/lodop/package.json +5 -6
- package/media/media.component.d.ts +4 -1
- package/media/media.d.ts +1 -0
- package/media/media.module.d.ts +6 -0
- package/media/media.service.d.ts +3 -0
- package/media/package.json +5 -6
- package/notice-icon/notice-icon-tab.component.d.ts +3 -0
- package/notice-icon/notice-icon.component.d.ts +4 -1
- package/notice-icon/notice-icon.d.ts +5 -0
- package/notice-icon/notice-icon.module.d.ts +16 -0
- package/notice-icon/package.json +6 -7
- package/notice-icon/style/index.less +17 -0
- package/onboarding/onboarding.component.d.ts +4 -1
- package/onboarding/onboarding.d.ts +1 -0
- package/onboarding/onboarding.module.d.ts +11 -0
- package/onboarding/onboarding.service.d.ts +3 -0
- package/onboarding/package.json +5 -6
- package/onboarding/style/index.less +6 -0
- package/package.json +274 -14
- package/page-header/package.json +6 -7
- package/page-header/page-header.component.d.ts +4 -1
- package/page-header/page-header.d.ts +5 -0
- package/page-header/page-header.module.d.ts +11 -0
- package/page-header/style/index.less +10 -0
- package/page-header/style/rtl.less +3 -0
- package/pdf/package.json +5 -6
- package/pdf/pdf.component.d.ts +5 -2
- package/pdf/pdf.d.ts +1 -0
- package/pdf/pdf.module.d.ts +7 -0
- package/qr/package.json +5 -6
- package/qr/qr.component.d.ts +13 -10
- package/qr/qr.d.ts +1 -0
- package/qr/qr.module.d.ts +6 -0
- package/quick-menu/package.json +6 -7
- package/quick-menu/quick-menu.component.d.ts +6 -3
- package/quick-menu/quick-menu.d.ts +5 -0
- package/quick-menu/quick-menu.module.d.ts +8 -0
- package/quick-menu/style/index.less +2 -0
- package/result/package.json +5 -6
- package/result/result.component.d.ts +6 -3
- package/result/result.d.ts +1 -0
- package/result/result.module.d.ts +8 -0
- package/result/style/index.less +7 -0
- package/reuse-tab/package.json +6 -7
- package/reuse-tab/reuse-tab-context-menu.component.d.ts +3 -0
- package/reuse-tab/reuse-tab-context.component.d.ts +4 -1
- package/reuse-tab/reuse-tab-context.directive.d.ts +3 -0
- package/reuse-tab/reuse-tab-context.service.d.ts +4 -1
- package/reuse-tab/reuse-tab.component.d.ts +13 -10
- package/reuse-tab/reuse-tab.d.ts +5 -0
- package/reuse-tab/reuse-tab.module.d.ts +15 -0
- package/reuse-tab/reuse-tab.service.d.ts +7 -4
- package/reuse-tab/style/index.less +4 -0
- package/se/package.json +6 -7
- package/se/public_api.d.ts +0 -1
- package/se/se-container.component.d.ts +18 -4
- package/se/se.component.d.ts +13 -8
- package/{footer-toolbar/footerToolbar.d.ts → se/se.d.ts} +1 -0
- package/se/se.module.d.ts +10 -0
- package/se/style/index.less +2 -0
- package/sg/package.json +6 -7
- package/sg/sg-container.component.d.ts +4 -1
- package/sg/sg.component.d.ts +4 -1
- package/{error-collect/errorCollect.d.ts → sg/sg.d.ts} +1 -0
- package/sg/sg.module.d.ts +7 -0
- package/st/package.json +6 -7
- package/st/st-column-source.d.ts +4 -1
- package/st/st-data-source.d.ts +3 -0
- package/st/st-export.d.ts +3 -0
- package/st/st-filter.component.d.ts +3 -0
- package/st/st-row.directive.d.ts +7 -2
- package/st/st-widget-host.directive.d.ts +5 -3
- package/st/st-widget.d.ts +3 -0
- package/st/st.component.d.ts +38 -11
- package/{down-file/downFile.d.ts → st/st.d.ts} +1 -0
- package/st/st.interfaces.d.ts +2 -2
- package/st/st.module.d.ts +27 -0
- package/st/style/index.less +8 -0
- package/sv/package.json +6 -7
- package/sv/public_api.d.ts +0 -1
- package/sv/style/index.less +8 -0
- package/sv/sv-container.component.d.ts +16 -3
- package/sv/sv-value.component.d.ts +3 -0
- package/sv/sv.component.d.ts +13 -10
- package/{avatar-list/avatarList.d.ts → sv/sv.d.ts} +1 -0
- package/sv/sv.module.d.ts +12 -0
- package/tag-select/package.json +6 -7
- package/tag-select/style/index.less +4 -0
- package/tag-select/style/rtl.less +3 -0
- package/tag-select/tag-select.component.d.ts +3 -0
- package/tag-select/tag-select.d.ts +5 -0
- package/tag-select/tag-select.module.d.ts +8 -0
- package/xlsx/package.json +5 -6
- package/xlsx/xlsx.d.ts +1 -0
- package/xlsx/xlsx.directive.d.ts +3 -0
- package/xlsx/xlsx.module.d.ts +6 -0
- package/xlsx/xlsx.service.d.ts +3 -0
- package/zip/package.json +5 -6
- package/zip/zip.d.ts +1 -0
- package/zip/zip.module.d.ts +5 -0
- package/zip/zip.service.d.ts +3 -0
- package/abc.metadata.json +0 -1
- package/auto-focus/autoFocus.metadata.json +0 -1
- package/avatar-list/avatarList.metadata.json +0 -1
- package/bundles/abc.umd.js +0 -19
- package/bundles/abc.umd.js.map +0 -1
- package/bundles/autoFocus.umd.js +0 -394
- package/bundles/autoFocus.umd.js.map +0 -1
- package/bundles/avatarList.umd.js +0 -465
- package/bundles/avatarList.umd.js.map +0 -1
- package/bundles/count-down.umd.js +0 -75
- package/bundles/count-down.umd.js.map +0 -1
- package/bundles/datePicker.umd.js +0 -552
- package/bundles/datePicker.umd.js.map +0 -1
- package/bundles/downFile.umd.js +0 -474
- package/bundles/downFile.umd.js.map +0 -1
- package/bundles/edit.umd.js +0 -776
- package/bundles/edit.umd.js.map +0 -1
- package/bundles/ellipsis.umd.js +0 -578
- package/bundles/ellipsis.umd.js.map +0 -1
- package/bundles/errorCollect.umd.js +0 -461
- package/bundles/errorCollect.umd.js.map +0 -1
- package/bundles/exception.umd.js +0 -150
- package/bundles/exception.umd.js.map +0 -1
- package/bundles/footerToolbar.umd.js +0 -401
- package/bundles/footerToolbar.umd.js.map +0 -1
- package/bundles/fullContent.umd.js +0 -550
- package/bundles/fullContent.umd.js.map +0 -1
- package/bundles/globalFooter.umd.js +0 -455
- package/bundles/globalFooter.umd.js.map +0 -1
- package/bundles/grid.umd.js +0 -470
- package/bundles/grid.umd.js.map +0 -1
- package/bundles/image.umd.js +0 -482
- package/bundles/image.umd.js.map +0 -1
- package/bundles/let.umd.js +0 -76
- package/bundles/let.umd.js.map +0 -1
- package/bundles/loading.umd.js +0 -181
- package/bundles/loading.umd.js.map +0 -1
- package/bundles/lodop.umd.js +0 -605
- package/bundles/lodop.umd.js.map +0 -1
- package/bundles/media.umd.js +0 -536
- package/bundles/media.umd.js.map +0 -1
- package/bundles/noticeIcon.umd.js +0 -468
- package/bundles/noticeIcon.umd.js.map +0 -1
- package/bundles/onboarding.umd.js +0 -370
- package/bundles/onboarding.umd.js.map +0 -1
- package/bundles/pageHeader.umd.js +0 -570
- package/bundles/pageHeader.umd.js.map +0 -1
- package/bundles/pdf.umd.js +0 -863
- package/bundles/pdf.umd.js.map +0 -1
- package/bundles/qr.umd.js +0 -491
- package/bundles/qr.umd.js.map +0 -1
- package/bundles/quickMenu.umd.js +0 -442
- package/bundles/quickMenu.umd.js.map +0 -1
- package/bundles/result.umd.js +0 -100
- package/bundles/result.umd.js.map +0 -1
- package/bundles/reuseTab.umd.js +0 -1522
- package/bundles/reuseTab.umd.js.map +0 -1
- package/bundles/table.umd.js +0 -2590
- package/bundles/table.umd.js.map +0 -1
- package/bundles/tagSelect.umd.js +0 -419
- package/bundles/tagSelect.umd.js.map +0 -1
- package/bundles/view.umd.js +0 -592
- package/bundles/view.umd.js.map +0 -1
- package/bundles/xlsx.umd.js +0 -529
- package/bundles/xlsx.umd.js.map +0 -1
- package/bundles/zip.umd.js +0 -482
- package/bundles/zip.umd.js.map +0 -1
- package/count-down/count-down.metadata.json +0 -1
- package/date-picker/datePicker.d.ts +0 -5
- package/date-picker/datePicker.metadata.json +0 -1
- package/down-file/downFile.metadata.json +0 -1
- package/ellipsis/ellipsis.metadata.json +0 -1
- package/error-collect/errorCollect.metadata.json +0 -1
- package/esm2015/auto-focus/auto-focus.directive.js +0 -42
- package/esm2015/auto-focus/auto-focus.module.js +0 -12
- package/esm2015/auto-focus/autoFocus.js +0 -5
- package/esm2015/avatar-list/avatar-list-item.component.js +0 -20
- package/esm2015/avatar-list/avatar-list.component.js +0 -89
- package/esm2015/avatar-list/avatar-list.module.js +0 -17
- package/esm2015/avatar-list/avatarList.js +0 -5
- package/esm2015/count-down/count-down.component.js +0 -36
- package/esm2015/count-down/count-down.module.js +0 -15
- package/esm2015/date-picker/date-picker.module.js +0 -17
- package/esm2015/date-picker/datePicker.js +0 -6
- package/esm2015/date-picker/range-shortcut.component.js +0 -26
- package/esm2015/date-picker/range.directive.js +0 -171
- package/esm2015/down-file/down-file.directive.js +0 -103
- package/esm2015/down-file/down-file.module.js +0 -15
- package/esm2015/down-file/downFile.js +0 -5
- package/esm2015/ellipsis/ellipsis.component.js +0 -224
- package/esm2015/ellipsis/ellipsis.module.js +0 -16
- package/esm2015/error-collect/error-collect.component.js +0 -112
- package/esm2015/error-collect/error-collect.module.js +0 -15
- package/esm2015/error-collect/errorCollect.js +0 -5
- package/esm2015/exception/exception.component.js +0 -103
- package/esm2015/exception/exception.module.js +0 -18
- package/esm2015/footer-toolbar/footer-toolbar.component.js +0 -46
- package/esm2015/footer-toolbar/footer-toolbar.module.js +0 -16
- package/esm2015/footer-toolbar/footerToolbar.js +0 -5
- package/esm2015/full-content/full-content-toggle.directive.js +0 -23
- package/esm2015/full-content/full-content.component.js +0 -135
- package/esm2015/full-content/full-content.module.js +0 -15
- package/esm2015/full-content/full-content.service.js +0 -21
- package/esm2015/full-content/fullContent.js +0 -5
- package/esm2015/global-footer/global-footer-item.component.js +0 -24
- package/esm2015/global-footer/global-footer.component.js +0 -77
- package/esm2015/global-footer/global-footer.module.js +0 -16
- package/esm2015/global-footer/globalFooter.js +0 -5
- package/esm2015/image/image.directive.js +0 -133
- package/esm2015/image/image.module.js +0 -15
- package/esm2015/let/let.directive.js +0 -31
- package/esm2015/let/let.module.js +0 -12
- package/esm2015/loading/loading.component.js +0 -26
- package/esm2015/loading/loading.module.js +0 -19
- package/esm2015/loading/loading.service.js +0 -92
- package/esm2015/lodop/lodop.module.js +0 -7
- package/esm2015/lodop/lodop.service.js +0 -219
- package/esm2015/lodop/lodop.types.js +0 -2
- package/esm2015/media/media.component.js +0 -104
- package/esm2015/media/media.module.js +0 -14
- package/esm2015/media/media.service.js +0 -53
- package/esm2015/notice-icon/notice-icon-tab.component.js +0 -30
- package/esm2015/notice-icon/notice-icon.component.js +0 -74
- package/esm2015/notice-icon/notice-icon.module.js +0 -35
- package/esm2015/notice-icon/noticeIcon.js +0 -5
- package/esm2015/onboarding/onboarding.component.js +0 -130
- package/esm2015/onboarding/onboarding.module.js +0 -20
- package/esm2015/onboarding/onboarding.service.js +0 -178
- package/esm2015/page-header/page-header.component.js +0 -216
- package/esm2015/page-header/page-header.module.js +0 -19
- package/esm2015/page-header/pageHeader.js +0 -5
- package/esm2015/pdf/pdf.component.js +0 -433
- package/esm2015/pdf/pdf.module.js +0 -15
- package/esm2015/qr/qr.component.js +0 -128
- package/esm2015/qr/qr.module.js +0 -14
- package/esm2015/quick-menu/quick-menu.component.js +0 -90
- package/esm2015/quick-menu/quick-menu.module.js +0 -16
- package/esm2015/quick-menu/quickMenu.js +0 -5
- package/esm2015/result/result.component.js +0 -62
- package/esm2015/result/result.module.js +0 -16
- package/esm2015/reuse-tab/reuse-tab-context-menu.component.js +0 -74
- package/esm2015/reuse-tab/reuse-tab-context.component.js +0 -32
- package/esm2015/reuse-tab/reuse-tab-context.directive.js +0 -33
- package/esm2015/reuse-tab/reuse-tab-context.service.js +0 -53
- package/esm2015/reuse-tab/reuse-tab.component.js +0 -300
- package/esm2015/reuse-tab/reuse-tab.module.js +0 -24
- package/esm2015/reuse-tab/reuse-tab.service.js +0 -534
- package/esm2015/reuse-tab/reuseTab.js +0 -5
- package/esm2015/se/edit.js +0 -5
- package/esm2015/se/public_api.js +0 -6
- package/esm2015/se/se-container.component.js +0 -115
- package/esm2015/se/se-title.component.js +0 -40
- package/esm2015/se/se.component.js +0 -214
- package/esm2015/se/se.module.js +0 -19
- package/esm2015/sg/grid.js +0 -5
- package/esm2015/sg/sg-container.component.js +0 -49
- package/esm2015/sg/sg.component.js +0 -65
- package/esm2015/sg/sg.module.js +0 -15
- package/esm2015/st/st-column-source.js +0 -428
- package/esm2015/st/st-data-source.js +0 -429
- package/esm2015/st/st-export.js +0 -90
- package/esm2015/st/st-filter.component.js +0 -149
- package/esm2015/st/st-row.directive.js +0 -40
- package/esm2015/st/st-td.component.js +0 -232
- package/esm2015/st/st-widget-host.directive.js +0 -34
- package/esm2015/st/st-widget.js +0 -24
- package/esm2015/st/st.component.js +0 -788
- package/esm2015/st/st.interfaces.js +0 -2
- package/esm2015/st/st.module.js +0 -56
- package/esm2015/st/table.js +0 -8
- package/esm2015/sv/public_api.js +0 -6
- package/esm2015/sv/sv-container.component.js +0 -63
- package/esm2015/sv/sv-title.component.js +0 -40
- package/esm2015/sv/sv-value.component.js +0 -32
- package/esm2015/sv/sv.component.js +0 -105
- package/esm2015/sv/sv.module.js +0 -21
- package/esm2015/sv/view.js +0 -5
- package/esm2015/tag-select/tag-select.component.js +0 -70
- package/esm2015/tag-select/tag-select.module.js +0 -16
- package/esm2015/tag-select/tagSelect.js +0 -5
- package/esm2015/xlsx/xlsx.directive.js +0 -26
- package/esm2015/xlsx/xlsx.module.js +0 -14
- package/esm2015/xlsx/xlsx.service.js +0 -129
- package/esm2015/zip/zip.module.js +0 -10
- package/esm2015/zip/zip.service.js +0 -115
- package/exception/exception.metadata.json +0 -1
- package/fesm2015/abc.js.map +0 -1
- package/fesm2015/autoFocus.js +0 -59
- package/fesm2015/autoFocus.js.map +0 -1
- package/fesm2015/avatarList.js +0 -128
- package/fesm2015/avatarList.js.map +0 -1
- package/fesm2015/count-down.js +0 -56
- package/fesm2015/count-down.js.map +0 -1
- package/fesm2015/datePicker.js.map +0 -1
- package/fesm2015/downFile.js +0 -122
- package/fesm2015/downFile.js.map +0 -1
- package/fesm2015/edit.js +0 -396
- package/fesm2015/edit.js.map +0 -1
- package/fesm2015/ellipsis.js +0 -244
- package/fesm2015/ellipsis.js.map +0 -1
- package/fesm2015/errorCollect.js +0 -131
- package/fesm2015/errorCollect.js.map +0 -1
- package/fesm2015/exception.js +0 -125
- package/fesm2015/exception.js.map +0 -1
- package/fesm2015/footerToolbar.js +0 -66
- package/fesm2015/footerToolbar.js.map +0 -1
- package/fesm2015/fullContent.js +0 -191
- package/fesm2015/fullContent.js.map +0 -1
- package/fesm2015/globalFooter.js +0 -118
- package/fesm2015/globalFooter.js.map +0 -1
- package/fesm2015/grid.js +0 -129
- package/fesm2015/grid.js.map +0 -1
- package/fesm2015/image.js +0 -152
- package/fesm2015/image.js.map +0 -1
- package/fesm2015/let.js +0 -48
- package/fesm2015/let.js.map +0 -1
- package/fesm2015/loading.js +0 -138
- package/fesm2015/loading.js.map +0 -1
- package/fesm2015/lodop.js.map +0 -1
- package/fesm2015/media.js +0 -174
- package/fesm2015/media.js.map +0 -1
- package/fesm2015/noticeIcon.js +0 -141
- package/fesm2015/noticeIcon.js.map +0 -1
- package/fesm2015/onboarding.js +0 -328
- package/fesm2015/onboarding.js.map +0 -1
- package/fesm2015/pageHeader.js +0 -239
- package/fesm2015/pageHeader.js.map +0 -1
- package/fesm2015/pdf.js.map +0 -1
- package/fesm2015/qr.js +0 -159
- package/fesm2015/qr.js.map +0 -1
- package/fesm2015/quickMenu.js +0 -111
- package/fesm2015/quickMenu.js.map +0 -1
- package/fesm2015/result.js +0 -83
- package/fesm2015/result.js.map +0 -1
- package/fesm2015/reuseTab.js.map +0 -1
- package/fesm2015/table.js.map +0 -1
- package/fesm2015/tagSelect.js +0 -90
- package/fesm2015/tagSelect.js.map +0 -1
- package/fesm2015/view.js +0 -256
- package/fesm2015/view.js.map +0 -1
- package/fesm2015/xlsx.js.map +0 -1
- package/fesm2015/zip.js.map +0 -1
- package/footer-toolbar/footerToolbar.metadata.json +0 -1
- package/full-content/fullContent.d.ts +0 -4
- package/full-content/fullContent.metadata.json +0 -1
- package/global-footer/globalFooter.d.ts +0 -4
- package/global-footer/globalFooter.metadata.json +0 -1
- package/image/image.metadata.json +0 -1
- package/let/let.metadata.json +0 -1
- package/loading/loading.metadata.json +0 -1
- package/lodop/lodop.metadata.json +0 -1
- package/media/media.metadata.json +0 -1
- package/notice-icon/noticeIcon.d.ts +0 -4
- package/notice-icon/noticeIcon.metadata.json +0 -1
- package/onboarding/onboarding.metadata.json +0 -1
- package/page-header/pageHeader.d.ts +0 -4
- package/page-header/pageHeader.metadata.json +0 -1
- package/pdf/pdf.metadata.json +0 -1
- package/qr/qr.metadata.json +0 -1
- package/quick-menu/quickMenu.d.ts +0 -4
- package/quick-menu/quickMenu.metadata.json +0 -1
- package/result/result.metadata.json +0 -1
- package/reuse-tab/reuseTab.d.ts +0 -4
- package/reuse-tab/reuseTab.metadata.json +0 -1
- package/se/edit.d.ts +0 -4
- package/se/edit.metadata.json +0 -1
- package/se/se-title.component.d.ts +0 -10
- package/sg/grid.d.ts +0 -4
- package/sg/grid.metadata.json +0 -1
- package/st/st-td.component.d.ts +0 -27
- package/st/table.d.ts +0 -7
- package/st/table.metadata.json +0 -1
- package/sv/sv-title.component.d.ts +0 -10
- package/sv/view.d.ts +0 -4
- package/sv/view.metadata.json +0 -1
- package/tag-select/tagSelect.d.ts +0 -4
- package/tag-select/tagSelect.metadata.json +0 -1
- package/xlsx/xlsx.metadata.json +0 -1
- package/zip/zip.metadata.json +0 -1
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute, NavigationEnd, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';
|
|
3
|
+
import { BehaviorSubject, timer } from 'rxjs';
|
|
4
|
+
import { ScrollService } from '@delon/util/browser';
|
|
5
|
+
import { ReuseTabMatchMode } from './reuse-tab.interfaces';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@delon/theme";
|
|
8
|
+
export class ReuseTabService {
|
|
9
|
+
// #endregion
|
|
10
|
+
constructor(injector, menuService) {
|
|
11
|
+
this.injector = injector;
|
|
12
|
+
this.menuService = menuService;
|
|
13
|
+
this._inited = false;
|
|
14
|
+
this._max = 10;
|
|
15
|
+
this._keepingScroll = false;
|
|
16
|
+
this._cachedChange = new BehaviorSubject(null);
|
|
17
|
+
this._cached = [];
|
|
18
|
+
this._titleCached = {};
|
|
19
|
+
this._closableCached = {};
|
|
20
|
+
this.removeUrlBuffer = null;
|
|
21
|
+
this.positionBuffer = {};
|
|
22
|
+
this.debug = false;
|
|
23
|
+
this.routeParamMatchMode = 'strict';
|
|
24
|
+
this.mode = ReuseTabMatchMode.Menu;
|
|
25
|
+
/** 排除规则,限 `mode=URL` */
|
|
26
|
+
this.excludes = [];
|
|
27
|
+
}
|
|
28
|
+
get snapshot() {
|
|
29
|
+
return this.injector.get(ActivatedRoute).snapshot;
|
|
30
|
+
}
|
|
31
|
+
// #region public
|
|
32
|
+
/**
|
|
33
|
+
* Get init status
|
|
34
|
+
*
|
|
35
|
+
* 是否已经初始化完成
|
|
36
|
+
*/
|
|
37
|
+
get inited() {
|
|
38
|
+
return this._inited;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Current routing address
|
|
42
|
+
*
|
|
43
|
+
* 当前路由地址
|
|
44
|
+
*/
|
|
45
|
+
get curUrl() {
|
|
46
|
+
return this.getUrl(this.snapshot);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 允许最多复用多少个页面,取值范围 `2-100`,值发生变更时会强制关闭且忽略可关闭条件
|
|
50
|
+
*/
|
|
51
|
+
set max(value) {
|
|
52
|
+
this._max = Math.min(Math.max(value, 2), 100);
|
|
53
|
+
for (let i = this._cached.length; i > this._max; i--) {
|
|
54
|
+
this._cached.pop();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
set keepingScroll(value) {
|
|
58
|
+
this._keepingScroll = value;
|
|
59
|
+
this.initScroll();
|
|
60
|
+
}
|
|
61
|
+
get keepingScroll() {
|
|
62
|
+
return this._keepingScroll;
|
|
63
|
+
}
|
|
64
|
+
/** 获取已缓存的路由 */
|
|
65
|
+
get items() {
|
|
66
|
+
return this._cached;
|
|
67
|
+
}
|
|
68
|
+
/** 获取当前缓存的路由总数 */
|
|
69
|
+
get count() {
|
|
70
|
+
return this._cached.length;
|
|
71
|
+
}
|
|
72
|
+
/** 订阅缓存变更通知 */
|
|
73
|
+
get change() {
|
|
74
|
+
return this._cachedChange.asObservable(); // .pipe(filter(w => w !== null));
|
|
75
|
+
}
|
|
76
|
+
/** 自定义当前标题 */
|
|
77
|
+
set title(value) {
|
|
78
|
+
const url = this.curUrl;
|
|
79
|
+
if (typeof value === 'string')
|
|
80
|
+
value = { text: value };
|
|
81
|
+
this._titleCached[url] = value;
|
|
82
|
+
this.di('update current tag title: ', value);
|
|
83
|
+
this._cachedChange.next({
|
|
84
|
+
active: 'title',
|
|
85
|
+
url,
|
|
86
|
+
title: value,
|
|
87
|
+
list: this._cached
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** 获取指定路径缓存所在位置,`-1` 表示无缓存 */
|
|
91
|
+
index(url) {
|
|
92
|
+
return this._cached.findIndex(w => w.url === url);
|
|
93
|
+
}
|
|
94
|
+
/** 获取指定路径缓存是否存在 */
|
|
95
|
+
exists(url) {
|
|
96
|
+
return this.index(url) !== -1;
|
|
97
|
+
}
|
|
98
|
+
/** 获取指定路径缓存 */
|
|
99
|
+
get(url) {
|
|
100
|
+
return url ? this._cached.find(w => w.url === url) || null : null;
|
|
101
|
+
}
|
|
102
|
+
remove(url, includeNonCloseable) {
|
|
103
|
+
const idx = typeof url === 'string' ? this.index(url) : url;
|
|
104
|
+
const item = idx !== -1 ? this._cached[idx] : null;
|
|
105
|
+
if (!item || (!includeNonCloseable && !item.closable))
|
|
106
|
+
return false;
|
|
107
|
+
this.destroy(item._handle);
|
|
108
|
+
this._cached.splice(idx, 1);
|
|
109
|
+
delete this._titleCached[url];
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 根据URL移除标签
|
|
114
|
+
*
|
|
115
|
+
* @param [includeNonCloseable=false] 是否强制包含不可关闭
|
|
116
|
+
*/
|
|
117
|
+
close(url, includeNonCloseable = false) {
|
|
118
|
+
this.removeUrlBuffer = url;
|
|
119
|
+
this.remove(url, includeNonCloseable);
|
|
120
|
+
this._cachedChange.next({ active: 'close', url, list: this._cached });
|
|
121
|
+
this.di('close tag', url);
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 清除右边
|
|
126
|
+
*
|
|
127
|
+
* @param [includeNonCloseable=false] 是否强制包含不可关闭
|
|
128
|
+
*/
|
|
129
|
+
closeRight(url, includeNonCloseable = false) {
|
|
130
|
+
const start = this.index(url);
|
|
131
|
+
for (let i = this.count - 1; i > start; i--) {
|
|
132
|
+
this.remove(i, includeNonCloseable);
|
|
133
|
+
}
|
|
134
|
+
this.removeUrlBuffer = null;
|
|
135
|
+
this._cachedChange.next({ active: 'closeRight', url, list: this._cached });
|
|
136
|
+
this.di('close right tages', url);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 清除所有缓存
|
|
141
|
+
*
|
|
142
|
+
* @param [includeNonCloseable=false] 是否强制包含不可关闭
|
|
143
|
+
*/
|
|
144
|
+
clear(includeNonCloseable = false) {
|
|
145
|
+
this._cached.forEach(w => {
|
|
146
|
+
if (!includeNonCloseable && w.closable)
|
|
147
|
+
this.destroy(w._handle);
|
|
148
|
+
});
|
|
149
|
+
this._cached = this._cached.filter(w => !includeNonCloseable && !w.closable);
|
|
150
|
+
this.removeUrlBuffer = null;
|
|
151
|
+
this._cachedChange.next({ active: 'clear', list: this._cached });
|
|
152
|
+
this.di('clear all catch');
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 移动缓存数据
|
|
156
|
+
*
|
|
157
|
+
* @param url 要移动的URL地址
|
|
158
|
+
* @param position 新位置,下标从 `0` 开始
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```
|
|
162
|
+
* // source
|
|
163
|
+
* [ '/a/1', '/a/2', '/a/3', '/a/4', '/a/5' ]
|
|
164
|
+
* move('/a/1', 2);
|
|
165
|
+
* // output
|
|
166
|
+
* [ '/a/2', '/a/3', '/a/1', '/a/4', '/a/5' ]
|
|
167
|
+
* move('/a/1', -1);
|
|
168
|
+
* // output
|
|
169
|
+
* [ '/a/2', '/a/3', '/a/4', '/a/5', '/a/1' ]
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
move(url, position) {
|
|
173
|
+
const start = this._cached.findIndex(w => w.url === url);
|
|
174
|
+
if (start === -1)
|
|
175
|
+
return;
|
|
176
|
+
const data = this._cached.slice();
|
|
177
|
+
data.splice(position < 0 ? data.length + position : position, 0, data.splice(start, 1)[0]);
|
|
178
|
+
this._cached = data;
|
|
179
|
+
this._cachedChange.next({
|
|
180
|
+
active: 'move',
|
|
181
|
+
url,
|
|
182
|
+
position,
|
|
183
|
+
list: this._cached
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* 强制关闭当前路由(包含不可关闭状态),并重新导航至 `newUrl` 路由
|
|
188
|
+
*/
|
|
189
|
+
replace(newUrl) {
|
|
190
|
+
const url = this.curUrl;
|
|
191
|
+
if (this.exists(url)) {
|
|
192
|
+
this.close(url, true);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
this.removeUrlBuffer = url;
|
|
196
|
+
}
|
|
197
|
+
this.injector.get(Router).navigateByUrl(newUrl);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* 获取标题,顺序如下:
|
|
201
|
+
*
|
|
202
|
+
* 1. 组件内使用 `ReuseTabService.title = 'new title'` 重新指定文本
|
|
203
|
+
* 2. 路由配置中 data 属性中包含 titleI18n > title
|
|
204
|
+
* 3. 菜单数据中 text 属性
|
|
205
|
+
*
|
|
206
|
+
* @param url 指定URL
|
|
207
|
+
* @param route 指定路由快照
|
|
208
|
+
*/
|
|
209
|
+
getTitle(url, route) {
|
|
210
|
+
if (this._titleCached[url]) {
|
|
211
|
+
return this._titleCached[url];
|
|
212
|
+
}
|
|
213
|
+
if (route && route.data && (route.data.titleI18n || route.data.title)) {
|
|
214
|
+
return {
|
|
215
|
+
text: route.data.title,
|
|
216
|
+
i18n: route.data.titleI18n
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
const menu = this.getMenu(url);
|
|
220
|
+
return menu ? { text: menu.text, i18n: menu.i18n } : { text: url };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* 清除标题缓存
|
|
224
|
+
*/
|
|
225
|
+
clearTitleCached() {
|
|
226
|
+
this._titleCached = {};
|
|
227
|
+
}
|
|
228
|
+
/** 自定义当前 `closable` 状态 */
|
|
229
|
+
set closable(value) {
|
|
230
|
+
const url = this.curUrl;
|
|
231
|
+
this._closableCached[url] = value;
|
|
232
|
+
this.di('update current tag closable: ', value);
|
|
233
|
+
this._cachedChange.next({
|
|
234
|
+
active: 'closable',
|
|
235
|
+
closable: value,
|
|
236
|
+
list: this._cached
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* 获取 `closable` 状态,顺序如下:
|
|
241
|
+
*
|
|
242
|
+
* 1. 组件内使用 `ReuseTabService.closable = true` 重新指定 `closable` 状态
|
|
243
|
+
* 2. 路由配置中 data 属性中包含 `reuseClosable`
|
|
244
|
+
* 3. 菜单数据中 `reuseClosable` 属性
|
|
245
|
+
*
|
|
246
|
+
* @param url 指定URL
|
|
247
|
+
* @param route 指定路由快照
|
|
248
|
+
*/
|
|
249
|
+
getClosable(url, route) {
|
|
250
|
+
if (typeof this._closableCached[url] !== 'undefined')
|
|
251
|
+
return this._closableCached[url];
|
|
252
|
+
if (route && route.data && typeof route.data.reuseClosable === 'boolean')
|
|
253
|
+
return route.data.reuseClosable;
|
|
254
|
+
const menu = this.mode !== ReuseTabMatchMode.URL ? this.getMenu(url) : null;
|
|
255
|
+
if (menu && typeof menu.reuseClosable === 'boolean')
|
|
256
|
+
return menu.reuseClosable;
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* 清空 `closable` 缓存
|
|
261
|
+
*/
|
|
262
|
+
clearClosableCached() {
|
|
263
|
+
this._closableCached = {};
|
|
264
|
+
}
|
|
265
|
+
getTruthRoute(route) {
|
|
266
|
+
let next = route;
|
|
267
|
+
while (next.firstChild)
|
|
268
|
+
next = next.firstChild;
|
|
269
|
+
return next;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* 根据快照获取URL地址
|
|
273
|
+
*/
|
|
274
|
+
getUrl(route) {
|
|
275
|
+
let next = this.getTruthRoute(route);
|
|
276
|
+
const segments = [];
|
|
277
|
+
while (next) {
|
|
278
|
+
segments.push(next.url.join('/'));
|
|
279
|
+
next = next.parent;
|
|
280
|
+
}
|
|
281
|
+
const url = `/${segments
|
|
282
|
+
.filter(i => i)
|
|
283
|
+
.reverse()
|
|
284
|
+
.join('/')}`;
|
|
285
|
+
return url;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* 检查快照是否允许被复用
|
|
289
|
+
*/
|
|
290
|
+
can(route) {
|
|
291
|
+
const url = this.getUrl(route);
|
|
292
|
+
if (url === this.removeUrlBuffer)
|
|
293
|
+
return false;
|
|
294
|
+
if (route.data && typeof route.data.reuse === 'boolean')
|
|
295
|
+
return route.data.reuse;
|
|
296
|
+
if (this.mode !== ReuseTabMatchMode.URL) {
|
|
297
|
+
const menu = this.getMenu(url);
|
|
298
|
+
if (!menu)
|
|
299
|
+
return false;
|
|
300
|
+
if (this.mode === ReuseTabMatchMode.Menu) {
|
|
301
|
+
if (menu.reuse === false)
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
if (!menu.reuse || menu.reuse !== true)
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
return !this.isExclude(url);
|
|
311
|
+
}
|
|
312
|
+
isExclude(url) {
|
|
313
|
+
return this.excludes.findIndex(r => r.test(url)) !== -1;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* 刷新,触发一个 refresh 类型事件
|
|
317
|
+
*/
|
|
318
|
+
refresh(data) {
|
|
319
|
+
this._cachedChange.next({ active: 'refresh', data });
|
|
320
|
+
}
|
|
321
|
+
// #endregion
|
|
322
|
+
// #region privates
|
|
323
|
+
destroy(_handle) {
|
|
324
|
+
if (_handle && _handle.componentRef && _handle.componentRef.destroy)
|
|
325
|
+
_handle.componentRef.destroy();
|
|
326
|
+
}
|
|
327
|
+
di(...args) {
|
|
328
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
329
|
+
if (!this.debug)
|
|
330
|
+
return;
|
|
331
|
+
console.warn(...args);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
init() {
|
|
335
|
+
this.initScroll();
|
|
336
|
+
this._inited = true;
|
|
337
|
+
}
|
|
338
|
+
getMenu(url) {
|
|
339
|
+
const menus = this.menuService.getPathByUrl(url);
|
|
340
|
+
if (!menus || menus.length === 0)
|
|
341
|
+
return null;
|
|
342
|
+
return menus.pop();
|
|
343
|
+
}
|
|
344
|
+
runHook(method, comp, type = 'init') {
|
|
345
|
+
if (typeof comp === 'number') {
|
|
346
|
+
const item = this._cached[comp];
|
|
347
|
+
comp = item._handle.componentRef;
|
|
348
|
+
}
|
|
349
|
+
if (comp == null || !comp.instance) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const compThis = comp.instance;
|
|
353
|
+
const fn = compThis[method];
|
|
354
|
+
if (typeof fn !== 'function') {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (method === '_onReuseInit') {
|
|
358
|
+
fn.call(compThis, type);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
fn.call(compThis);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
hasInValidRoute(route) {
|
|
365
|
+
return !route.routeConfig || !!route.routeConfig.loadChildren || !!route.routeConfig.children;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* 决定是否允许路由复用,若 `true` 会触发 `store`
|
|
369
|
+
*/
|
|
370
|
+
shouldDetach(route) {
|
|
371
|
+
if (this.hasInValidRoute(route))
|
|
372
|
+
return false;
|
|
373
|
+
this.di('#shouldDetach', this.can(route), this.getUrl(route));
|
|
374
|
+
return this.can(route);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* 存储
|
|
378
|
+
*/
|
|
379
|
+
store(_snapshot, _handle) {
|
|
380
|
+
const url = this.getUrl(_snapshot);
|
|
381
|
+
const idx = this.index(url);
|
|
382
|
+
const isAdd = idx === -1;
|
|
383
|
+
const item = {
|
|
384
|
+
title: this.getTitle(url, _snapshot),
|
|
385
|
+
closable: this.getClosable(url, _snapshot),
|
|
386
|
+
position: this.getKeepingScroll(url, _snapshot) ? this.positionBuffer[url] : null,
|
|
387
|
+
url,
|
|
388
|
+
_snapshot,
|
|
389
|
+
_handle
|
|
390
|
+
};
|
|
391
|
+
if (isAdd) {
|
|
392
|
+
if (this.count >= this._max) {
|
|
393
|
+
// Get the oldest closable location
|
|
394
|
+
const closeIdx = this._cached.findIndex(w => w.closable);
|
|
395
|
+
if (closeIdx !== -1)
|
|
396
|
+
this.remove(closeIdx, false);
|
|
397
|
+
}
|
|
398
|
+
this._cached.push(item);
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
// Current handler is null when activate routes
|
|
402
|
+
// For better reliability, we need to wait for the component to be attached before call _onReuseInit
|
|
403
|
+
const cahcedComponentRef = this._cached[idx]._handle?.componentRef;
|
|
404
|
+
if (_handle == null && cahcedComponentRef != null) {
|
|
405
|
+
timer(100).subscribe(() => this.runHook('_onReuseInit', cahcedComponentRef));
|
|
406
|
+
}
|
|
407
|
+
this._cached[idx] = item;
|
|
408
|
+
}
|
|
409
|
+
this.removeUrlBuffer = null;
|
|
410
|
+
this.di('#store', isAdd ? '[new]' : '[override]', url);
|
|
411
|
+
if (_handle && _handle.componentRef) {
|
|
412
|
+
this.runHook('_onReuseDestroy', _handle.componentRef);
|
|
413
|
+
}
|
|
414
|
+
if (!isAdd) {
|
|
415
|
+
this._cachedChange.next({ active: 'override', item, list: this._cached });
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* 决定是否允许应用缓存数据
|
|
420
|
+
*/
|
|
421
|
+
shouldAttach(route) {
|
|
422
|
+
if (this.hasInValidRoute(route))
|
|
423
|
+
return false;
|
|
424
|
+
const url = this.getUrl(route);
|
|
425
|
+
const data = this.get(url);
|
|
426
|
+
const ret = !!(data && data._handle);
|
|
427
|
+
this.di('#shouldAttach', ret, url);
|
|
428
|
+
if (!ret) {
|
|
429
|
+
this._cachedChange.next({ active: 'add', url, list: this._cached });
|
|
430
|
+
}
|
|
431
|
+
return ret;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* 提取复用数据
|
|
435
|
+
*/
|
|
436
|
+
retrieve(route) {
|
|
437
|
+
if (this.hasInValidRoute(route))
|
|
438
|
+
return null;
|
|
439
|
+
const url = this.getUrl(route);
|
|
440
|
+
const data = this.get(url);
|
|
441
|
+
const ret = (data && data._handle) || null;
|
|
442
|
+
this.di('#retrieve', url, ret);
|
|
443
|
+
return ret;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* 决定是否应该进行复用路由处理
|
|
447
|
+
*/
|
|
448
|
+
shouldReuseRoute(future, curr) {
|
|
449
|
+
let ret = future.routeConfig === curr.routeConfig;
|
|
450
|
+
if (!ret)
|
|
451
|
+
return false;
|
|
452
|
+
const path = ((future.routeConfig && future.routeConfig.path) || '');
|
|
453
|
+
if (path.length > 0 && ~path.indexOf(':')) {
|
|
454
|
+
if (this.routeParamMatchMode === 'strict') {
|
|
455
|
+
ret = this.getUrl(future) === this.getUrl(curr);
|
|
456
|
+
}
|
|
457
|
+
else {
|
|
458
|
+
ret = path === ((curr.routeConfig && curr.routeConfig.path) || '');
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
this.di('=====================');
|
|
462
|
+
this.di('#shouldReuseRoute', ret, `${this.getUrl(curr)}=>${this.getUrl(future)}`, future, curr);
|
|
463
|
+
return ret;
|
|
464
|
+
}
|
|
465
|
+
// #region scroll
|
|
466
|
+
/**
|
|
467
|
+
* 获取 `keepingScroll` 状态,顺序如下:
|
|
468
|
+
*
|
|
469
|
+
* 1. 路由配置中 data 属性中包含 `keepingScroll`
|
|
470
|
+
* 2. 菜单数据中 `keepingScroll` 属性
|
|
471
|
+
* 3. 组件 `keepingScroll` 值
|
|
472
|
+
*/
|
|
473
|
+
getKeepingScroll(url, route) {
|
|
474
|
+
if (route && route.data && typeof route.data.keepingScroll === 'boolean')
|
|
475
|
+
return route.data.keepingScroll;
|
|
476
|
+
const menu = this.mode !== ReuseTabMatchMode.URL ? this.getMenu(url) : null;
|
|
477
|
+
if (menu && typeof menu.keepingScroll === 'boolean')
|
|
478
|
+
return menu.keepingScroll;
|
|
479
|
+
return this.keepingScroll;
|
|
480
|
+
}
|
|
481
|
+
get isDisabledInRouter() {
|
|
482
|
+
const routerConfig = this.injector.get(ROUTER_CONFIGURATION, {});
|
|
483
|
+
return routerConfig.scrollPositionRestoration === 'disabled';
|
|
484
|
+
}
|
|
485
|
+
get ss() {
|
|
486
|
+
return this.injector.get(ScrollService);
|
|
487
|
+
}
|
|
488
|
+
initScroll() {
|
|
489
|
+
if (this._router$) {
|
|
490
|
+
this._router$.unsubscribe();
|
|
491
|
+
}
|
|
492
|
+
this._router$ = this.injector.get(Router).events.subscribe(e => {
|
|
493
|
+
if (e instanceof NavigationStart) {
|
|
494
|
+
const url = this.curUrl;
|
|
495
|
+
if (this.getKeepingScroll(url, this.getTruthRoute(this.snapshot))) {
|
|
496
|
+
this.positionBuffer[url] = this.ss.getScrollPosition(this.keepingScrollContainer);
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
delete this.positionBuffer[url];
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
else if (e instanceof NavigationEnd) {
|
|
503
|
+
const url = this.curUrl;
|
|
504
|
+
const item = this.get(url);
|
|
505
|
+
if (item && item.position && this.getKeepingScroll(url, this.getTruthRoute(this.snapshot))) {
|
|
506
|
+
if (this.isDisabledInRouter) {
|
|
507
|
+
this.ss.scrollToPosition(this.keepingScrollContainer, item.position);
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
setTimeout(() => this.ss.scrollToPosition(this.keepingScrollContainer, item.position), 1);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
// #endregion
|
|
517
|
+
ngOnDestroy() {
|
|
518
|
+
const { _cachedChange, _router$ } = this;
|
|
519
|
+
this.clear();
|
|
520
|
+
this._cached = [];
|
|
521
|
+
_cachedChange.complete();
|
|
522
|
+
if (_router$) {
|
|
523
|
+
_router$.unsubscribe();
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
ReuseTabService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ReuseTabService, deps: [{ token: i0.Injector }, { token: i1.MenuService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
528
|
+
ReuseTabService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ReuseTabService, providedIn: 'root' });
|
|
529
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ReuseTabService, decorators: [{
|
|
530
|
+
type: Injectable,
|
|
531
|
+
args: [{ providedIn: 'root' }]
|
|
532
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.MenuService }]; } });
|
|
533
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV1c2UtdGFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvcmV1c2UtdGFiL3JldXNlLXRhYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFDTCxjQUFjLEVBR2QsYUFBYSxFQUNiLGVBQWUsRUFDZixNQUFNLEVBQ04sb0JBQW9CLEVBQ3JCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBYyxLQUFLLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBS0wsaUJBQWlCLEVBSWxCLE1BQU0sd0JBQXdCLENBQUM7OztBQUdoQyxNQUFNLE9BQU8sZUFBZTtJQWlWMUIsYUFBYTtJQUViLFlBQW9CLFFBQWtCLEVBQVUsV0FBd0I7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbFZoRSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUF3QixJQUFJLENBQUMsQ0FBQztRQUNqRSxZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFrQyxFQUFFLENBQUM7UUFDakQsb0JBQWUsR0FBK0IsRUFBRSxDQUFDO1FBRWpELG9CQUFlLEdBQWtCLElBQUksQ0FBQztRQUN0QyxtQkFBYyxHQUF3QyxFQUFFLENBQUM7UUFFakUsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLHdCQUFtQixHQUFnQyxRQUFRLENBQUM7UUFDNUQsU0FBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUM5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YixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekIsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs0R0FsaUJVLGVBQWU7Z0hBQWYsZUFBZSxjQURGLE1BQU07MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGUsXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIEV4dHJhT3B0aW9ucyxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBSb3V0ZXIsXG4gIFJPVVRFUl9DT05GSUdVUkFUSU9OXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRpbWVyLCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNZW51LCBNZW51U2VydmljZSB9IGZyb20gJ0BkZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmltcG9ydCB7XG4gIFJldXNlQ29tcG9uZW50UmVmLFxuICBSZXVzZUhvb2tPblJldXNlSW5pdFR5cGUsXG4gIFJldXNlSG9va1R5cGVzLFxuICBSZXVzZVRhYkNhY2hlZCxcbiAgUmV1c2VUYWJNYXRjaE1vZGUsXG4gIFJldXNlVGFiTm90aWZ5LFxuICBSZXVzZVRhYlJvdXRlUGFyYW1NYXRjaE1vZGUsXG4gIFJldXNlVGl0bGVcbn0gZnJvbSAnLi9yZXVzZS10YWIuaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmV1c2VUYWJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfaW5pdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21heCA9IDEwO1xuICBwcml2YXRlIF9rZWVwaW5nU2Nyb2xsID0gZmFsc2U7XG4gIHByaXZhdGUgX2NhY2hlZENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmV1c2VUYWJOb3RpZnkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBfY2FjaGVkOiBSZXVzZVRhYkNhY2hlZFtdID0gW107XG4gIHByaXZhdGUgX3RpdGxlQ2FjaGVkOiB7IFt1cmw6IHN0cmluZ106IFJldXNlVGl0bGUgfSA9IHt9O1xuICBwcml2YXRlIF9jbG9zYWJsZUNhY2hlZDogeyBbdXJsOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgcHJpdmF0ZSBfcm91dGVyJD86IFVuc3Vic2NyaWJhYmxlO1xuICBwcml2YXRlIHJlbW92ZVVybEJ1ZmZlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcG9zaXRpb25CdWZmZXI6IHsgW3VybDogc3RyaW5nXTogW251bWJlciwgbnVtYmVyXSB9ID0ge307XG4gIGNvbXBvbmVudFJlZj86IFJldXNlQ29tcG9uZW50UmVmO1xuICBkZWJ1ZyA9IGZhbHNlO1xuICByb3V0ZVBhcmFtTWF0Y2hNb2RlOiBSZXVzZVRhYlJvdXRlUGFyYW1NYXRjaE1vZGUgPSAnc3RyaWN0JztcbiAgbW9kZSA9IFJldXNlVGFiTWF0Y2hNb2RlLk1lbnU7XG4gIC8qKiDmjpLpmaTop4TliJnvvIzpmZAgYG1vZGU9VVJMYCAqL1xuICBleGNsdWRlczogUmVnRXhwW10gPSBbXTtcblxuICBwcml2YXRlIGdldCBzbmFwc2hvdCgpOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpLnNuYXBzaG90O1xuICB9XG5cbiAgLy8gI3JlZ2lvbiBwdWJsaWNcblxuICAvKipcbiAgICogR2V0IGluaXQgc3RhdHVzXG4gICAqXG4gICAqIOaYr+WQpuW3sue7j+WIneWni+WMluWujOaIkFxuICAgKi9cbiAgZ2V0IGluaXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW5pdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcm91dGluZyBhZGRyZXNzXG4gICAqXG4gICAqIOW9k+WJjei3r+eUseWcsOWdgFxuICAgKi9cbiAgZ2V0IGN1clVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFVybCh0aGlzLnNuYXBzaG90KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlhYHorrjmnIDlpJrlpI3nlKjlpJrlsJHkuKrpobXpnaLvvIzlj5blgLzojIPlm7QgYDItMTAwYO+8jOWAvOWPkeeUn+WPmOabtOaXtuS8muW8uuWItuWFs+mXreS4lOW/veeVpeWPr+WFs+mXreadoeS7tlxuICAgKi9cbiAgc2V0IG1heCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4ID0gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIDIpLCAxMDApO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLl9jYWNoZWQubGVuZ3RoOyBpID4gdGhpcy5fbWF4OyBpLS0pIHtcbiAgICAgIHRoaXMuX2NhY2hlZC5wb3AoKTtcbiAgICB9XG4gIH1cbiAgc2V0IGtlZXBpbmdTY3JvbGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9rZWVwaW5nU2Nyb2xsID0gdmFsdWU7XG4gICAgdGhpcy5pbml0U2Nyb2xsKCk7XG4gIH1cbiAgZ2V0IGtlZXBpbmdTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2tlZXBpbmdTY3JvbGw7XG4gIH1cbiAga2VlcGluZ1Njcm9sbENvbnRhaW5lcj86IEVsZW1lbnQ7XG4gIC8qKiDojrflj5blt7LnvJPlrZjnmoTot6/nlLEgKi9cbiAgZ2V0IGl0ZW1zKCk6IFJldXNlVGFiQ2FjaGVkW10ge1xuICAgIHJldHVybiB0aGlzLl9jYWNoZWQ7XG4gIH1cbiAgLyoqIOiOt+WPluW9k+WJjee8k+WtmOeahOi3r+eUseaAu+aVsCAqL1xuICBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkLmxlbmd0aDtcbiAgfVxuICAvKiog6K6i6ZiF57yT5a2Y5Y+Y5pu06YCa55+lICovXG4gIGdldCBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxSZXVzZVRhYk5vdGlmeSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpOyAvLyAucGlwZShmaWx0ZXIodyA9PiB3ICE9PSBudWxsKSk7XG4gIH1cbiAgLyoqIOiHquWumuS5ieW9k+WJjeagh+mimCAqL1xuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZyB8IFJldXNlVGl0bGUpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmN1clVybDtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgdmFsdWUgPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgdGhpcy5fdGl0bGVDYWNoZWRbdXJsXSA9IHZhbHVlO1xuICAgIHRoaXMuZGkoJ3VwZGF0ZSBjdXJyZW50IHRhZyB0aXRsZTogJywgdmFsdWUpO1xuICAgIHRoaXMuX2NhY2hlZENoYW5nZS5uZXh0KHtcbiAgICAgIGFjdGl2ZTogJ3RpdGxlJyxcbiAgICAgIHVybCxcbiAgICAgIHRpdGxlOiB2YWx1ZSxcbiAgICAgIGxpc3Q6IHRoaXMuX2NhY2hlZFxuICAgIH0pO1xuICB9XG4gIC8qKiDojrflj5bmjIflrprot6/lvoTnvJPlrZjmiYDlnKjkvY3nva7vvIxgLTFgIOihqOekuuaXoOe8k+WtmCAqL1xuICBpbmRleCh1cmw6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZC5maW5kSW5kZXgodyA9PiB3LnVybCA9PT0gdXJsKTtcbiAgfVxuICAvKiog6I635Y+W5oyH5a6a6Lev5b6E57yT5a2Y5piv5ZCm5a2Y5ZyoICovXG4gIGV4aXN0cyh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluZGV4KHVybCkgIT09IC0xO1xuICB9XG4gIC8qKiDojrflj5bmjIflrprot6/lvoTnvJPlrZggKi9cbiAgZ2V0KHVybD86IHN0cmluZyk6IFJldXNlVGFiQ2FjaGVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHVybCA/IHRoaXMuX2NhY2hlZC5maW5kKHcgPT4gdy51cmwgPT09IHVybCkgfHwgbnVsbCA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmUodXJsOiBzdHJpbmcgfCBudW1iZXIsIGluY2x1ZGVOb25DbG9zZWFibGU6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBpZHggPSB0eXBlb2YgdXJsID09PSAnc3RyaW5nJyA/IHRoaXMuaW5kZXgodXJsKSA6IHVybDtcbiAgICBjb25zdCBpdGVtID0gaWR4ICE9PSAtMSA/IHRoaXMuX2NhY2hlZFtpZHhdIDogbnVsbDtcbiAgICBpZiAoIWl0ZW0gfHwgKCFpbmNsdWRlTm9uQ2xvc2VhYmxlICYmICFpdGVtLmNsb3NhYmxlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgdGhpcy5kZXN0cm95KGl0ZW0uX2hhbmRsZSk7XG5cbiAgICB0aGlzLl9jYWNoZWQuc3BsaWNlKGlkeCwgMSk7XG4gICAgZGVsZXRlIHRoaXMuX3RpdGxlQ2FjaGVkW3VybF07XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIOagueaNrlVSTOenu+mZpOagh+etvlxuICAgKlxuICAgKiBAcGFyYW0gW2luY2x1ZGVOb25DbG9zZWFibGU9ZmFsc2VdIOaYr+WQpuW8uuWItuWMheWQq+S4jeWPr+WFs+mXrVxuICAgKi9cbiAgY2xvc2UodXJsOiBzdHJpbmcsIGluY2x1ZGVOb25DbG9zZWFibGU6IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIHRoaXMucmVtb3ZlVXJsQnVmZmVyID0gdXJsO1xuXG4gICAgdGhpcy5yZW1vdmUodXJsLCBpbmNsdWRlTm9uQ2xvc2VhYmxlKTtcblxuICAgIHRoaXMuX2NhY2hlZENoYW5nZS5uZXh0KHsgYWN0aXZlOiAnY2xvc2UnLCB1cmwsIGxpc3Q6IHRoaXMuX2NhY2hlZCB9KTtcblxuICAgIHRoaXMuZGkoJ2Nsb3NlIHRhZycsIHVybCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIOa4hemZpOWPs+i+uVxuICAgKlxuICAgKiBAcGFyYW0gW2luY2x1ZGVOb25DbG9zZWFibGU9ZmFsc2VdIOaYr+WQpuW8uuWItuWMheWQq+S4jeWPr+WFs+mXrVxuICAgKi9cbiAgY2xvc2VSaWdodCh1cmw6IHN0cmluZywgaW5jbHVkZU5vbkNsb3NlYWJsZTogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLmluZGV4KHVybCk7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMuY291bnQgLSAxOyBpID4gc3RhcnQ7IGktLSkge1xuICAgICAgdGhpcy5yZW1vdmUoaSwgaW5jbHVkZU5vbkNsb3NlYWJsZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVVcmxCdWZmZXIgPSBudWxsO1xuXG4gICAgdGhpcy5fY2FjaGVkQ2hhbmdlLm5leHQoeyBhY3RpdmU6ICdjbG9zZVJpZ2h0JywgdXJsLCBsaXN0OiB0aGlzLl9jYWNoZWQgfSk7XG5cbiAgICB0aGlzLmRpKCdjbG9zZSByaWdodCB0YWdlcycsIHVybCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIOa4hemZpOaJgOaciee8k+WtmFxuICAgKlxuICAgKiBAcGFyYW0gW2luY2x1ZGVOb25DbG9zZWFibGU9ZmFsc2VdIOaYr+WQpuW8uuWItuWMheWQq+S4jeWPr+WFs+mXrVxuICAgKi9cbiAgY2xlYXIoaW5jbHVkZU5vbkNsb3NlYWJsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fY2FjaGVkLmZvckVhY2godyA9PiB7XG4gICAgICBpZiAoIWluY2x1ZGVOb25DbG9zZWFibGUgJiYgdy5jbG9zYWJsZSkgdGhpcy5kZXN0cm95KHcuX2hhbmRsZSk7XG4gICAgfSk7XG4gICAgdGhpcy5fY2FjaGVkID0gdGhpcy5fY2FjaGVkLmZpbHRlcih3ID0+ICFpbmNsdWRlTm9uQ2xvc2VhYmxlICYmICF3LmNsb3NhYmxlKTtcblxuICAgIHRoaXMucmVtb3ZlVXJsQnVmZmVyID0gbnVsbDtcblxuICAgIHRoaXMuX2NhY2hlZENoYW5nZS5uZXh0KHsgYWN0aXZlOiAnY2xlYXInLCBsaXN0OiB0aGlzLl9jYWNoZWQgfSk7XG5cbiAgICB0aGlzLmRpKCdjbGVhciBhbGwgY2F0Y2gnKTtcbiAgfVxuICAvKipcbiAgICog56e75Yqo57yT5a2Y5pWw5o2uXG4gICAqXG4gICAqIEBwYXJhbSB1cmwg6KaB56e75Yqo55qEVVJM5Zyw5Z2AXG4gICAqIEBwYXJhbSBwb3NpdGlvbiDmlrDkvY3nva7vvIzkuIvmoIfku44gYDBgIOW8gOWni1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogLy8gc291cmNlXG4gICAqIFsgJy9hLzEnLCAnL2EvMicsICcvYS8zJywgJy9hLzQnLCAnL2EvNScgXVxuICAgKiBtb3ZlKCcvYS8xJywgMik7XG4gICAqIC8vIG91dHB1dFxuICAgKiBbICcvYS8yJywgJy9hLzMnLCAnL2EvMScsICcvYS80JywgJy9hLzUnIF1cbiAgICogbW92ZSgnL2EvMScsIC0xKTtcbiAgICogLy8gb3V0cHV0XG4gICAqIFsgJy9hLzInLCAnL2EvMycsICcvYS80JywgJy9hLzUnLCAnL2EvMScgXVxuICAgKiBgYGBcbiAgICovXG4gIG1vdmUodXJsOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuX2NhY2hlZC5maW5kSW5kZXgodyA9PiB3LnVybCA9PT0gdXJsKTtcbiAgICBpZiAoc3RhcnQgPT09IC0xKSByZXR1cm47XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2NhY2hlZC5zbGljZSgpO1xuICAgIGRhdGEuc3BsaWNlKHBvc2l0aW9uIDwgMCA/IGRhdGEubGVuZ3RoICsgcG9zaXRpb24gOiBwb3NpdGlvbiwgMCwgZGF0YS5zcGxpY2Uoc3RhcnQsIDEpWzBdKTtcbiAgICB0aGlzLl9jYWNoZWQgPSBkYXRhO1xuICAgIHRoaXMuX2NhY2hlZENoYW5nZS5uZXh0KHtcbiAgICAgIGFjdGl2ZTogJ21vdmUnLFxuICAgICAgdXJsLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBsaXN0OiB0aGlzLl9jYWNoZWRcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICog5by65Yi25YWz6Zet5b2T5YmN6Lev55Sx77yI5YyF5ZCr5LiN5Y+v5YWz6Zet54q25oCB77yJ77yM5bm26YeN5paw5a+86Iiq6IezIGBuZXdVcmxgIOi3r+eUsVxuICAgKi9cbiAgcmVwbGFjZShuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY3VyVXJsO1xuICAgIGlmICh0aGlzLmV4aXN0cyh1cmwpKSB7XG4gICAgICB0aGlzLmNsb3NlKHVybCwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlVXJsQnVmZmVyID0gdXJsO1xuICAgIH1cbiAgICB0aGlzLmluamVjdG9yLmdldDxSb3V0ZXI+KFJvdXRlcikubmF2aWdhdGVCeVVybChuZXdVcmwpO1xuICB9XG4gIC8qKlxuICAgKiDojrflj5bmoIfpopjvvIzpobrluo/lpoLkuIvvvJpcbiAgICpcbiAgICogMS4g57uE5Lu25YaF5L2/55SoIGBSZXVzZVRhYlNlcnZpY2UudGl0bGUgPSAnbmV3IHRpdGxlJ2Ag6YeN5paw5oyH5a6a5paH5pysXG4gICAqIDIuIOi3r+eUsemFjee9ruS4rSBkYXRhIOWxnuaAp+S4reWMheWQqyB0aXRsZUkxOG4gPiB0aXRsZVxuICAgKiAzLiDoj5zljZXmlbDmja7kuK0gdGV4dCDlsZ7mgKdcbiAgICpcbiAgICogQHBhcmFtIHVybCDmjIflrppVUkxcbiAgICogQHBhcmFtIHJvdXRlIOaMh+Wumui3r+eUseW/q+eFp1xuICAgKi9cbiAgZ2V0VGl0bGUodXJsOiBzdHJpbmcsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFJldXNlVGl0bGUge1xuICAgIGlmICh0aGlzLl90aXRsZUNhY2hlZFt1cmxdKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGl0bGVDYWNoZWRbdXJsXTtcbiAgICB9XG5cbiAgICBpZiAocm91dGUgJiYgcm91dGUuZGF0YSAmJiAocm91dGUuZGF0YS50aXRsZUkxOG4gfHwgcm91dGUuZGF0YS50aXRsZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IHJvdXRlLmRhdGEudGl0bGUsXG4gICAgICAgIGkxOG46IHJvdXRlLmRhdGEudGl0bGVJMThuXG4gICAgICB9IGFzIFJldXNlVGl0bGU7XG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IHRoaXMuZ2V0TWVudSh1cmwpO1xuICAgIHJldHVybiBtZW51ID8geyB0ZXh0OiBtZW51LnRleHQsIGkxOG46IG1lbnUuaTE4biB9IDogeyB0ZXh0OiB1cmwgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmuIXpmaTmoIfpopjnvJPlrZhcbiAgICovXG4gIGNsZWFyVGl0bGVDYWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGl0bGVDYWNoZWQgPSB7fTtcbiAgfVxuICAvKiog6Ieq5a6a5LmJ5b2T5YmNIGBjbG9zYWJsZWAg54q25oCBICovXG4gIHNldCBjbG9zYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY3VyVXJsO1xuICAgIHRoaXMuX2Nsb3NhYmxlQ2FjaGVkW3VybF0gPSB2YWx1ZTtcbiAgICB0aGlzLmRpKCd1cGRhdGUgY3VycmVudCB0YWcgY2xvc2FibGU6ICcsIHZhbHVlKTtcbiAgICB0aGlzLl9jYWNoZWRDaGFuZ2UubmV4dCh7XG4gICAgICBhY3RpdmU6ICdjbG9zYWJsZScsXG4gICAgICBjbG9zYWJsZTogdmFsdWUsXG4gICAgICBsaXN0OiB0aGlzLl9jYWNoZWRcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICog6I635Y+WIGBjbG9zYWJsZWAg54q25oCB77yM6aG65bqP5aaC5LiL77yaXG4gICAqXG4gICAqIDEuIOe7hOS7tuWGheS9v+eUqCBgUmV1c2VUYWJTZXJ2aWNlLmNsb3NhYmxlID0gdHJ1ZWAg6YeN5paw5oyH5a6aIGBjbG9zYWJsZWAg54q25oCBXG4gICAqIDIuIOi3r+eUsemFjee9ruS4rSBkYXRhIOWxnuaAp+S4reWMheWQqyBgcmV1c2VDbG9zYWJsZWBcbiAgICogMy4g6I+c5Y2V5pWw5o2u5LitIGByZXVzZUNsb3NhYmxlYCDlsZ7mgKdcbiAgICpcbiAgICogQHBhcmFtIHVybCDmjIflrppVUkxcbiAgICogQHBhcmFtIHJvdXRlIOaMh+Wumui3r+eUseW/q+eFp1xuICAgKi9cbiAgZ2V0Q2xvc2FibGUodXJsOiBzdHJpbmcsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fY2xvc2FibGVDYWNoZWRbdXJsXSAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0aGlzLl9jbG9zYWJsZUNhY2hlZFt1cmxdO1xuXG4gICAgaWYgKHJvdXRlICYmIHJvdXRlLmRhdGEgJiYgdHlwZW9mIHJvdXRlLmRhdGEucmV1c2VDbG9zYWJsZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcm91dGUuZGF0YS5yZXVzZUNsb3NhYmxlO1xuXG4gICAgY29uc3QgbWVudSA9IHRoaXMubW9kZSAhPT0gUmV1c2VUYWJNYXRjaE1vZGUuVVJMID8gdGhpcy5nZXRNZW51KHVybCkgOiBudWxsO1xuICAgIGlmIChtZW51ICYmIHR5cGVvZiBtZW51LnJldXNlQ2xvc2FibGUgPT09ICdib29sZWFuJykgcmV0dXJuIG1lbnUucmV1c2VDbG9zYWJsZTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiDmuIXnqbogYGNsb3NhYmxlYCDnvJPlrZhcbiAgICovXG4gIGNsZWFyQ2xvc2FibGVDYWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2FibGVDYWNoZWQgPSB7fTtcbiAgfVxuICBnZXRUcnV0aFJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB7XG4gICAgbGV0IG5leHQgPSByb3V0ZTtcbiAgICB3aGlsZSAobmV4dC5maXJzdENoaWxkKSBuZXh0ID0gbmV4dC5maXJzdENoaWxkO1xuICAgIHJldHVybiBuZXh0O1xuICB9XG4gIC8qKlxuICAgKiDmoLnmja7lv6vnhafojrflj5ZVUkzlnLDlnYBcbiAgICovXG4gIGdldFVybChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHN0cmluZyB7XG4gICAgbGV0IG5leHQgPSB0aGlzLmdldFRydXRoUm91dGUocm91dGUpO1xuICAgIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICBzZWdtZW50cy5wdXNoKG5leHQudXJsLmpvaW4oJy8nKSk7XG4gICAgICBuZXh0ID0gbmV4dC5wYXJlbnQhO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSBgLyR7c2VnbWVudHNcbiAgICAgIC5maWx0ZXIoaSA9PiBpKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmpvaW4oJy8nKX1gO1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgLyoqXG4gICAqIOajgOafpeW/q+eFp+aYr+WQpuWFgeiuuOiiq+WkjeeUqFxuICAgKi9cbiAgY2FuKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwocm91dGUpO1xuICAgIGlmICh1cmwgPT09IHRoaXMucmVtb3ZlVXJsQnVmZmVyKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAocm91dGUuZGF0YSAmJiB0eXBlb2Ygcm91dGUuZGF0YS5yZXVzZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcm91dGUuZGF0YS5yZXVzZTtcblxuICAgIGlmICh0aGlzLm1vZGUgIT09IFJldXNlVGFiTWF0Y2hNb2RlLlVSTCkge1xuICAgICAgY29uc3QgbWVudSA9IHRoaXMuZ2V0TWVudSh1cmwpO1xuICAgICAgaWYgKCFtZW51KSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSBSZXVzZVRhYk1hdGNoTW9kZS5NZW51KSB7XG4gICAgICAgIGlmIChtZW51LnJldXNlID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFtZW51LnJldXNlIHx8IG1lbnUucmV1c2UgIT09IHRydWUpIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuaXNFeGNsdWRlKHVybCk7XG4gIH1cblxuICBpc0V4Y2x1ZGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leGNsdWRlcy5maW5kSW5kZXgociA9PiByLnRlc3QodXJsKSkgIT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIt+aWsO+8jOinpuWPkeS4gOS4qiByZWZyZXNoIOexu+Wei+S6i+S7tlxuICAgKi9cbiAgcmVmcmVzaChkYXRhPzogTnpTYWZlQW55KTogdm9pZCB7XG4gICAgdGhpcy5fY2FjaGVkQ2hhbmdlLm5leHQoeyBhY3RpdmU6ICdyZWZyZXNoJywgZGF0YSB9KTtcbiAgfVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBwcml2YXRlc1xuXG4gIHByaXZhdGUgZGVzdHJveShfaGFuZGxlOiBOelNhZmVBbnkpOiB2b2lkIHtcbiAgICBpZiAoX2hhbmRsZSAmJiBfaGFuZGxlLmNvbXBvbmVudFJlZiAmJiBfaGFuZGxlLmNvbXBvbmVudFJlZi5kZXN0cm95KSBfaGFuZGxlLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIGRpKC4uLmFyZ3M6IE56U2FmZUFueVtdKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgaWYgKCF0aGlzLmRlYnVnKSByZXR1cm47XG4gICAgICBjb25zb2xlLndhcm4oLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgLy8gI2VuZHJlZ2lvblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSkge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFNjcm9sbCgpO1xuICAgIHRoaXMuX2luaXRlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGdldE1lbnUodXJsOiBzdHJpbmcpOiBNZW51IHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWVudXMgPSB0aGlzLm1lbnVTZXJ2aWNlLmdldFBhdGhCeVVybCh1cmwpO1xuICAgIGlmICghbWVudXMgfHwgbWVudXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbWVudXMucG9wKCk7XG4gIH1cblxuICBydW5Ib29rKFxuICAgIG1ldGhvZDogUmV1c2VIb29rVHlwZXMsXG4gICAgY29tcDogUmV1c2VDb21wb25lbnRSZWYgfCBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgdHlwZTogUmV1c2VIb29rT25SZXVzZUluaXRUeXBlID0gJ2luaXQnXG4gICk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgY29tcCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9jYWNoZWRbY29tcF07XG4gICAgICBjb21wID0gaXRlbS5faGFuZGxlLmNvbXBvbmVudFJlZjtcbiAgICB9XG4gICAgaWYgKGNvbXAgPT0gbnVsbCB8fCAhY29tcC5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb21wVGhpcyA9IGNvbXAuaW5zdGFuY2U7XG4gICAgY29uc3QgZm4gPSBjb21wVGhpc1ttZXRob2RdO1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG1ldGhvZCA9PT0gJ19vblJldXNlSW5pdCcpIHtcbiAgICAgIGZuLmNhbGwoY29tcFRoaXMsIHR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAoZm4gYXMgKCkgPT4gdm9pZCkuY2FsbChjb21wVGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNJblZhbGlkUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXJvdXRlLnJvdXRlQ29uZmlnIHx8ICEhcm91dGUucm91dGVDb25maWcubG9hZENoaWxkcmVuIHx8ICEhcm91dGUucm91dGVDb25maWcuY2hpbGRyZW47XG4gIH1cblxuICAvKipcbiAgICog5Yaz5a6a5piv5ZCm5YWB6K646Lev55Sx5aSN55So77yM6IulIGB0cnVlYCDkvJrop6blj5EgYHN0b3JlYFxuICAgKi9cbiAgc2hvdWxkRGV0YWNoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaGFzSW5WYWxpZFJvdXRlKHJvdXRlKSkgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMuZGkoJyNzaG91bGREZXRhY2gnLCB0aGlzLmNhbihyb3V0ZSksIHRoaXMuZ2V0VXJsKHJvdXRlKSk7XG4gICAgcmV0dXJuIHRoaXMuY2FuKHJvdXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlrZjlgqhcbiAgICovXG4gIHN0b3JlKF9zbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgX2hhbmRsZTogTnpTYWZlQW55KTogdm9pZCB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwoX3NuYXBzaG90KTtcbiAgICBjb25zdCBpZHggPSB0aGlzLmluZGV4KHVybCk7XG4gICAgY29uc3QgaXNBZGQgPSBpZHggPT09IC0xO1xuXG4gICAgY29uc3QgaXRlbTogUmV1c2VUYWJDYWNoZWQgPSB7XG4gICAgICB0aXRsZTogdGhpcy5nZXRUaXRsZSh1cmwsIF9zbmFwc2hvdCksXG4gICAgICBjbG9zYWJsZTogdGhpcy5nZXRDbG9zYWJsZSh1cmwsIF9zbmFwc2hvdCksXG4gICAgICBwb3NpdGlvbjogdGhpcy5nZXRLZWVwaW5nU2Nyb2xsKHVybCwgX3NuYXBzaG90KSA/IHRoaXMucG9zaXRpb25CdWZmZXJbdXJsXSA6IG51bGwsXG4gICAgICB1cmwsXG4gICAgICBfc25hcHNob3QsXG4gICAgICBfaGFuZGxlXG4gICAgfTtcbiAgICBpZiAoaXNBZGQpIHtcbiAgICAgIGlmICh0aGlzLmNvdW50ID49IHRoaXMuX21heCkge1xuICAgICAgICAvLyBHZXQgdGhlIG9sZGVzdCBjbG9zYWJsZSBsb2NhdGlvblxuICAgICAgICBjb25zdCBjbG9zZUlkeCA9IHRoaXMuX2NhY2hlZC5maW5kSW5kZXgodyA9PiB3LmNsb3NhYmxlISk7XG4gICAgICAgIGlmIChjbG9zZUlkeCAhPT0gLTEpIHRoaXMucmVtb3ZlKGNsb3NlSWR4LCBmYWxzZSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jYWNoZWQucHVzaChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3VycmVudCBoYW5kbGVyIGlzIG51bGwgd2hlbiBhY3RpdmF0ZSByb3V0ZXNcbiAgICAgIC8vIEZvciBiZXR0ZXIgcmVsaWFiaWxpdHksIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhdHRhY2hlZCBiZWZvcmUgY2FsbCBfb25SZXVzZUluaXRcbiAgICAgIGNvbnN0IGNhaGNlZENvbXBvbmVudFJlZiA9IHRoaXMuX2NhY2hlZFtpZHhdLl9oYW5kbGU/LmNvbXBvbmVudFJlZjtcbiAgICAgIGlmIChfaGFuZGxlID09IG51bGwgJiYgY2FoY2VkQ29tcG9uZW50UmVmICE9IG51bGwpIHtcbiAgICAgICAgdGltZXIoMTAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5ydW5Ib29rKCdfb25SZXVzZUluaXQnLCBjYWhjZWRDb21wb25lbnRSZWYpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NhY2hlZFtpZHhdID0gaXRlbTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVVcmxCdWZmZXIgPSBudWxsO1xuXG4gICAgdGhpcy5kaSgnI3N0b3JlJywgaXNBZGQgPyAnW25ld10nIDogJ1tvdmVycmlkZV0nLCB1cmwpO1xuXG4gICAgaWYgKF9oYW5kbGUgJiYgX2hhbmRsZS5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMucnVuSG9vaygnX29uUmV1c2VEZXN0cm95JywgX2hhbmRsZS5jb21wb25lbnRSZWYpO1xuICAgIH1cblxuICAgIGlmICghaXNBZGQpIHtcbiAgICAgIHRoaXMuX2NhY2hlZENoYW5nZS5uZXh0KHsgYWN0aXZlOiAnb3ZlcnJpZGUnLCBpdGVtLCBsaXN0OiB0aGlzLl9jYWNoZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOWGs+WumuaYr+WQpuWFgeiuuOW6lOeUqOe8k+WtmOaVsOaNrlxuICAgKi9cbiAgc2hvdWxkQXR0YWNoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaGFzSW5WYWxpZFJvdXRlKHJvdXRlKSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKHJvdXRlKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5nZXQodXJsKTtcbiAgICBjb25zdCByZXQgPSAhIShkYXRhICYmIGRhdGEuX2hhbmRsZSk7XG4gICAgdGhpcy5kaSgnI3Nob3VsZEF0dGFjaCcsIHJldCwgdXJsKTtcbiAgICBpZiAoIXJldCkge1xuICAgICAgdGhpcy5fY2FjaGVkQ2hhbmdlLm5leHQoeyBhY3RpdmU6ICdhZGQnLCB1cmwsIGxpc3Q6IHRoaXMuX2NhY2hlZCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiDmj5Dlj5blpI3nlKjmlbDmja5cbiAgICovXG4gIHJldHJpZXZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogTnpTYWZlQW55IHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaGFzSW5WYWxpZFJvdXRlKHJvdXRlKSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwocm91dGUpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldCh1cmwpO1xuICAgIGNvbnN0IHJldCA9IChkYXRhICYmIGRhdGEuX2hhbmRsZSkgfHwgbnVsbDtcbiAgICB0aGlzLmRpKCcjcmV0cmlldmUnLCB1cmwsIHJldCk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlhrPlrprmmK/lkKblupTor6Xov5vooYzlpI3nlKjot6/nlLHlpITnkIZcbiAgICovXG4gIHNob3VsZFJldXNlUm91dGUoZnV0dXJlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgbGV0IHJldCA9IGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZztcbiAgICBpZiAoIXJldCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcGF0aCA9ICgoZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZy5wYXRoKSB8fCAnJykgYXMgc3RyaW5nO1xuICAgIGlmIChwYXRoLmxlbmd0aCA+IDAgJiYgfnBhdGguaW5kZXhPZignOicpKSB7XG4gICAgICBpZiAodGhpcy5yb3V0ZVBhcmFtTWF0Y2hNb2RlID09PSAnc3RyaWN0Jykge1xuICAgICAgICByZXQgPSB0aGlzLmdldFVybChmdXR1cmUpID09PSB0aGlzLmdldFVybChjdXJyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldCA9IHBhdGggPT09ICgoY3Vyci5yb3V0ZUNvbmZpZyAmJiBjdXJyLnJvdXRlQ29uZmlnLnBhdGgpIHx8ICcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kaSgnPT09PT09PT09PT09PT09PT09PT09Jyk7XG4gICAgdGhpcy5kaSgnI3Nob3VsZFJldXNlUm91dGUnLCByZXQsIGAke3RoaXMuZ2V0VXJsKGN1cnIpfT0+JHt0aGlzLmdldFVybChmdXR1cmUpfWAsIGZ1dHVyZSwgY3Vycik7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8vICNyZWdpb24gc2Nyb2xsXG5cbiAgLyoqXG4gICAqIOiOt+WPliBga2VlcGluZ1Njcm9sbGAg54q25oCB77yM6aG65bqP5aaC5LiL77yaXG4gICAqXG4gICAqIDEuIOi3r+eUsemFjee9ruS4rSBkYXRhIOWxnuaAp+S4reWMheWQqyBga2VlcGluZ1Njcm9sbGBcbiAgICogMi4g6I+c5Y2V5pWw5o2u5LitIGBrZWVwaW5nU2Nyb2xsYCDlsZ7mgKdcbiAgICogMy4g57uE5Lu2IGBrZWVwaW5nU2Nyb2xsYCDlgLxcbiAgICovXG4gIGdldEtlZXBpbmdTY3JvbGwodXJsOiBzdHJpbmcsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGlmIChyb3V0ZSAmJiByb3V0ZS5kYXRhICYmIHR5cGVvZiByb3V0ZS5kYXRhLmtlZXBpbmdTY3JvbGwgPT09ICdib29sZWFuJykgcmV0dXJuIHJvdXRlLmRhdGEua2VlcGluZ1Njcm9sbDtcblxuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1vZGUgIT09IFJldXNlVGFiTWF0Y2hNb2RlLlVSTCA/IHRoaXMuZ2V0TWVudSh1cmwpIDogbnVsbDtcbiAgICBpZiAobWVudSAmJiB0eXBlb2YgbWVudS5rZWVwaW5nU2Nyb2xsID09PSAnYm9vbGVhbicpIHJldHVybiBtZW51LmtlZXBpbmdTY3JvbGw7XG5cbiAgICByZXR1cm4gdGhpcy5rZWVwaW5nU2Nyb2xsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNEaXNhYmxlZEluUm91dGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJvdXRlckNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0PEV4dHJhT3B0aW9ucz4oUk9VVEVSX0NPTkZJR1VSQVRJT04sIHt9IGFzIE56U2FmZUFueSk7XG4gICAgcmV0dXJuIHJvdXRlckNvbmZpZy5zY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uID09PSAnZGlzYWJsZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgc3MoKTogU2Nyb2xsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFNjcm9sbFNlcnZpY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yb3V0ZXIkKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcm91dGVyJCA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyKS5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5jdXJVcmw7XG4gICAgICAgIGlmICh0aGlzLmdldEtlZXBpbmdTY3JvbGwodXJsLCB0aGlzLmdldFRydXRoUm91dGUodGhpcy5zbmFwc2hvdCkpKSB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvbkJ1ZmZlclt1cmxdID0gdGhpcy5zcy5nZXRTY3JvbGxQb3NpdGlvbih0aGlzLmtlZXBpbmdTY3JvbGxDb250YWluZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLnBvc2l0aW9uQnVmZmVyW3VybF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5jdXJVcmw7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldCh1cmwpO1xuICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLnBvc2l0aW9uICYmIHRoaXMuZ2V0S2VlcGluZ1Njcm9sbCh1cmwsIHRoaXMuZ2V0VHJ1dGhSb3V0ZSh0aGlzLnNuYXBzaG90KSkpIHtcbiAgICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkSW5Sb3V0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3Muc2Nyb2xsVG9Qb3NpdGlvbih0aGlzLmtlZXBpbmdTY3JvbGxDb250YWluZXIsIGl0ZW0ucG9zaXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3Muc2Nyb2xsVG9Qb3NpdGlvbih0aGlzLmtlZXBpbmdTY3JvbGxDb250YWluZXIsIGl0ZW0ucG9zaXRpb24hKSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uXG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgeyBfY2FjaGVkQ2hhbmdlLCBfcm91dGVyJCB9ID0gdGhpcztcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgdGhpcy5fY2FjaGVkID0gW107XG4gICAgX2NhY2hlZENoYW5nZS5jb21wbGV0ZSgpO1xuXG4gICAgaWYgKF9yb3V0ZXIkKSB7XG4gICAgICBfcm91dGVyJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/{esm2015/reuse-tab/reuse-tab.strategy.js → esm2020/reuse-tab/reuse-tab.strategy.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './se-container.component';
|
|
2
|
+
export * from './se.component';
|
|
3
|
+
export * from './se.module';
|
|
4
|
+
export * from './se.types';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9zZS9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2UtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlLnR5cGVzJztcbiJdfQ==
|