govuk_publishing_components 17.21.0 → 18.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/all_components.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/character-count.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/error-summary.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/radio.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/lib/header-navigation.js +1 -1
- data/app/assets/stylesheets/component_guide/application.scss +5 -7
- data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_attachment.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +5 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +3 -15
- data/app/assets/stylesheets/govuk_publishing_components/components/_character-count.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list.scss +28 -9
- data/app/assets/stylesheets/govuk_publishing_components/components/_date-input.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_details.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_error-message.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +1 -13
- data/app/assets/stylesheets/govuk_publishing_components/components/_fieldset.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_file-upload.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +3 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_highlight-boxes.scss +3 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_hint.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +18 -7
- data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_inset-text.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_label.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-admin.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +6 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/_modal-dialogue.scss +8 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_panel.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_phase-banner.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +6 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +10 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_skip-link.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +3 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +17 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +8 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_textarea.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_title.scss +5 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_warning-text.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_call-to-action.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_example.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_fraction.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_information-callout.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_legislative-list.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_media-player.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_stat-headline.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +4 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_govuk-frontend-settings.scss +0 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +4 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_variables.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +1 -1
- data/app/views/govuk_publishing_components/component_guide/index.html.erb +14 -12
- data/app/views/govuk_publishing_components/components/_accordion.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_button.html.erb +16 -2
- data/app/views/govuk_publishing_components/components/_character_count.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_checkboxes.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_contents_list.html.erb +5 -1
- data/app/views/govuk_publishing_components/components/_details.html.erb +3 -1
- data/app/views/govuk_publishing_components/components/_error_summary.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_layout_header.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/_radio.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/_tabs.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_textarea.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_title.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/docs/button.yml +1 -1
- data/app/views/govuk_publishing_components/components/docs/contents_list.yml +12 -0
- data/app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml +1 -1
- data/app/views/govuk_publishing_components/components/docs/fieldset.yml +1 -1
- data/app/views/govuk_publishing_components/components/docs/label.yml +4 -1
- data/app/views/govuk_publishing_components/components/docs/table.yml +1 -0
- data/app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/feedback/_survey_signup_form.html.erb +2 -2
- data/config/initializers/assets.rb +3 -3
- data/config/locales/en.yml +0 -2
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/README.md +4 -9
- data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +4 -5
- data/node_modules/govuk-frontend/{all-ie8.scss → govuk/all-ie8.scss} +0 -0
- data/node_modules/govuk-frontend/{all.js → govuk/all.js} +116 -63
- data/node_modules/govuk-frontend/{all.scss → govuk/all.scss} +0 -0
- data/node_modules/govuk-frontend/govuk/assets/fonts/bold-affa96571d-v2.woff +0 -0
- data/node_modules/govuk-frontend/govuk/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
- data/node_modules/govuk-frontend/govuk/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
- data/node_modules/govuk-frontend/govuk/assets/fonts/light-f591b13f7d-v2.woff +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/favicon.ico +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-152x152.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-167x167.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-180x180.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-crest-2x.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-crest.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-logotype-crown.png +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-mask-icon.svg +0 -0
- data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-opengraph-image.png +0 -0
- data/node_modules/govuk-frontend/{common.js → govuk/common.js} +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/_accordion.scss +48 -28
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/accordion.js +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/macro-options.json +8 -2
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/accordion/template.njk +1 -3
- data/node_modules/govuk-frontend/{components → govuk/components}/back-link/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/back-link/_back-link.scss +17 -9
- data/node_modules/govuk-frontend/{components → govuk/components}/back-link/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/back-link/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/back-link/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/_breadcrumbs.scss +10 -11
- data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/button/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/button/_button.scss +76 -46
- data/node_modules/govuk-frontend/{components → govuk/components}/button/button.js +168 -17
- data/node_modules/govuk-frontend/{components → govuk/components}/button/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/button/macro.njk +0 -0
- data/node_modules/govuk-frontend/govuk/components/button/template.njk +60 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/_character-count.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/character-count.js +5 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/character-count/template.njk +2 -2
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/_checkboxes.scss +4 -6
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/checkboxes.js +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/macro-options.json +6 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/template.njk +18 -5
- data/node_modules/govuk-frontend/{components → govuk/components}/date-input/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/date-input/_date-input.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/date-input/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/date-input/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/date-input/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/details/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/details/_details.scss +12 -13
- data/node_modules/govuk-frontend/{components → govuk/components}/details/details.js +3 -4
- data/node_modules/govuk-frontend/{components → govuk/components}/details/implementation.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/details/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/details/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/details/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/error-message/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-message/_error-message.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-message/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-message/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-message/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/_error-summary.scss +4 -17
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/error-summary.js +0 -10
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/_fieldset.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/macro-options.json +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/README.md +0 -0
- data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +81 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/macro-options.json +6 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/footer/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/footer/_footer.scss +47 -16
- data/node_modules/govuk-frontend/{components → govuk/components}/footer/macro-options.json +5 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/footer/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/footer/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/header/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/header/_header.scss +34 -21
- data/node_modules/govuk-frontend/{components → govuk/components}/header/header.js +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/header/macro-options.json +2 -2
- data/node_modules/govuk-frontend/{components → govuk/components}/header/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/header/template.njk +6 -9
- data/node_modules/govuk-frontend/{components → govuk/components}/hint/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/hint/_hint.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/hint/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/hint/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/hint/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/input/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/input/_input.scss +24 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/input/macro-options.json +6 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/input/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/input/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/_inset-text.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/label/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/label/_label.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/label/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/label/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/label/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/panel/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/panel/_panel.scss +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/panel/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/panel/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/panel/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/_phase-banner.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/template.njk +5 -7
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/_radios.scss +7 -9
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/radios.js +24 -11
- data/node_modules/govuk-frontend/{components → govuk/components}/radios/template.njk +15 -5
- data/node_modules/govuk-frontend/{components → govuk/components}/select/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/select/_select.scss +23 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/select/macro-options.json +6 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/select/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/select/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/_skip-link.scss +6 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/_summary-list.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/macro-options.json +7 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/table/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/table/_table.scss +1 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/table/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/table/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/table/template.njk +14 -14
- data/node_modules/govuk-frontend/{components → govuk/components}/tabs/README.md +0 -0
- data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +142 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tabs/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tabs/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tabs/tabs.js +59 -5
- data/node_modules/govuk-frontend/{components → govuk/components}/tabs/template.njk +4 -6
- data/node_modules/govuk-frontend/{components → govuk/components}/tag/README.md +0 -0
- data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +44 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tag/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tag/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/tag/template.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/textarea/README.md +0 -0
- data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +55 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/textarea/macro-options.json +6 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/textarea/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/textarea/template.njk +1 -1
- data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/README.md +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/_warning-text.scss +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/macro-options.json +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/macro.njk +0 -0
- data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/template.njk +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_global-styles.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_links.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_lists.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_section-break.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_template.scss +0 -0
- data/node_modules/govuk-frontend/{core → govuk/core}/_typography.scss +0 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_all.scss +1 -1
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_clearfix.scss +0 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_colour.scss +23 -1
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_device-pixels.scss +0 -0
- data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +28 -0
- data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +41 -0
- data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +60 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_links.scss +15 -1
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_media-queries.scss +0 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_shape-arrow.scss +0 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_spacing.scss +0 -0
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_typography.scss +23 -5
- data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_visually-hidden.scss +4 -2
- data/node_modules/govuk-frontend/{objects → govuk/objects}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{objects → govuk/objects}/_form-group.scss +0 -0
- data/node_modules/govuk-frontend/{objects → govuk/objects}/_grid.scss +2 -2
- data/node_modules/govuk-frontend/{objects → govuk/objects}/_main-wrapper.scss +15 -1
- data/node_modules/govuk-frontend/{objects → govuk/objects}/_width-container.scss +0 -0
- data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_display.scss +0 -0
- data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_spacing.scss +0 -0
- data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_typography.scss +0 -0
- data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_width.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_assets.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_colours-applied.scss +9 -8
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_colours-organisations.scss +1 -1
- data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +101 -0
- data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +75 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_global-styles.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_ie8.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_measurements.scss +2 -2
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_media-queries.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_spacing.scss +0 -0
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-font-families.scss +11 -1
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-font.scss +27 -7
- data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-responsive.scss +9 -10
- data/node_modules/govuk-frontend/{template.njk → govuk/template.njk} +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_compatibility.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_exports.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_font-url.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_ie8.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_iff.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_image-url.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_px-to-em.scss +0 -0
- data/node_modules/govuk-frontend/{tools → govuk/tools}/_px-to-rem.scss +0 -0
- data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_all.scss +0 -0
- data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_clearfix.scss +0 -0
- data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_visually-hidden.scss +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/_sass-mq.scss +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/DOMTokenList.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Document.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/classList.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/closest.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/matches.js +0 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +259 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +257 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Event.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Function/prototype/bind.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Object/defineProperty.js +0 -0
- data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Window.js +0 -0
- data/node_modules/govuk-frontend/package.json +21 -21
- data/node_modules/react-is/README.md +2 -12
- data/node_modules/react-is/build-info.json +5 -5
- data/node_modules/react-is/cjs/react-is.development.js +7 -2
- data/node_modules/react-is/cjs/react-is.production.min.js +6 -6
- data/node_modules/react-is/package.json +13 -13
- data/node_modules/react-is/umd/react-is.development.js +7 -2
- data/node_modules/react-is/umd/react-is.production.min.js +5 -5
- data/node_modules/type/CHANGELOG.md +62 -50
- data/node_modules/type/LICENSE +15 -0
- data/node_modules/type/README.md +19 -19
- data/node_modules/type/error/is.js +28 -7
- data/node_modules/type/package.json +36 -22
- data/node_modules/type/test/error/is.js +13 -5
- metadata +247 -344
- data/app/assets/javascripts/govuk_publishing_components/components/accessible-autocomplete.js +0 -79
- data/app/assets/stylesheets/govuk_publishing_components/components/_accessible-autocomplete.scss +0 -41
- data/app/views/govuk_publishing_components/components/_accessible_autocomplete.html.erb +0 -35
- data/app/views/govuk_publishing_components/components/docs/accessible_autocomplete.yml +0 -49
- data/node_modules/accessible-autocomplete/CHANGELOG.md +0 -269
- data/node_modules/accessible-autocomplete/CONTRIBUTING.md +0 -150
- data/node_modules/accessible-autocomplete/LICENSE.txt +0 -20
- data/node_modules/accessible-autocomplete/Procfile +0 -1
- data/node_modules/accessible-autocomplete/README.md +0 -416
- data/node_modules/accessible-autocomplete/accessibility-criteria.md +0 -42
- data/node_modules/accessible-autocomplete/app.json +0 -15
- data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css +0 -1
- data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js +0 -2
- data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map +0 -1
- data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js +0 -2
- data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map +0 -1
- data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js +0 -2
- data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map +0 -1
- data/node_modules/accessible-autocomplete/examples/form.html +0 -671
- data/node_modules/accessible-autocomplete/examples/index.html +0 -665
- data/node_modules/accessible-autocomplete/examples/multiselect.html +0 -134
- data/node_modules/accessible-autocomplete/examples/preact/index.html +0 -346
- data/node_modules/accessible-autocomplete/examples/react/index.html +0 -347
- data/node_modules/accessible-autocomplete/package-lock.json +0 -14491
- data/node_modules/accessible-autocomplete/package.json +0 -173
- data/node_modules/accessible-autocomplete/preact.js +0 -1
- data/node_modules/accessible-autocomplete/react.js +0 -1
- data/node_modules/accessible-autocomplete/scripts/check-staged.js +0 -14
- data/node_modules/accessible-autocomplete/src/autocomplete.css +0 -192
- data/node_modules/accessible-autocomplete/src/autocomplete.js +0 -618
- data/node_modules/accessible-autocomplete/src/dropdown-arrow-down.js +0 -11
- data/node_modules/accessible-autocomplete/src/status.js +0 -80
- data/node_modules/accessible-autocomplete/src/wrapper.js +0 -76
- data/node_modules/accessible-autocomplete/test/functional/dropdown-arrow-down.js +0 -44
- data/node_modules/accessible-autocomplete/test/functional/index.js +0 -485
- data/node_modules/accessible-autocomplete/test/functional/wrapper.js +0 -318
- data/node_modules/accessible-autocomplete/test/integration/index.js +0 -188
- data/node_modules/accessible-autocomplete/test/karma.config.js +0 -42
- data/node_modules/accessible-autocomplete/test/wdio.config.js +0 -80
- data/node_modules/accessible-autocomplete/webpack.config.babel.js +0 -193
- data/node_modules/govuk-frontend/assets/fonts/bold-a2452cb66f-v1.woff2 +0 -0
- data/node_modules/govuk-frontend/assets/fonts/bold-f38c792ac2-v1.woff +0 -0
- data/node_modules/govuk-frontend/assets/fonts/bold-fb2676462a-v1.eot +0 -0
- data/node_modules/govuk-frontend/assets/fonts/bold-tabular-357fdfbcc3-v1.eot +0 -0
- data/node_modules/govuk-frontend/assets/fonts/bold-tabular-784c21afb8-v1.woff +0 -0
- data/node_modules/govuk-frontend/assets/fonts/bold-tabular-b89238d840-v1.woff2 +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-2c037cf7e1-v1.eot +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-458f8ea81c-v1.woff +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-f38ad40456-v1.woff2 +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-tabular-498ea8ffe2-v1.eot +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-tabular-62cc6f0a28-v1.woff +0 -0
- data/node_modules/govuk-frontend/assets/fonts/light-tabular-851b10ccdd-v1.woff2 +0 -0
- data/node_modules/govuk-frontend/assets/images/icon-arrow-left.png +0 -0
- data/node_modules/govuk-frontend/assets/images/icon-important.png +0 -0
- data/node_modules/govuk-frontend/assets/images/icon-pointer-2x.png +0 -0
- data/node_modules/govuk-frontend/assets/images/icon-pointer.png +0 -0
- data/node_modules/govuk-frontend/components/button/template.njk +0 -35
- data/node_modules/govuk-frontend/components/file-upload/_file-upload.scss +0 -19
- data/node_modules/govuk-frontend/components/tabs/_tabs.scss +0 -130
- data/node_modules/govuk-frontend/components/tag/_tag.scss +0 -33
- data/node_modules/govuk-frontend/components/textarea/_textarea.scss +0 -32
- data/node_modules/govuk-frontend/helpers/_focusable.scss +0 -34
- data/node_modules/govuk-frontend/helpers/_font-faces.scss +0 -67
- data/node_modules/govuk-frontend/helpers/_grid.scss +0 -107
- data/node_modules/govuk-frontend/settings/_colours-palette.scss +0 -37
- data/node_modules/govuk-frontend/settings/_compatibility.scss +0 -51
- data/node_modules/preact/LICENSE +0 -21
- data/node_modules/preact/README.md +0 -592
- data/node_modules/preact/debug.js +0 -740
- data/node_modules/preact/debug.js.map +0 -1
- data/node_modules/preact/debug/dist/debug.js +0 -2
- data/node_modules/preact/debug/dist/debug.js.map +0 -1
- data/node_modules/preact/debug/dist/debug.mjs +0 -681
- data/node_modules/preact/debug/dist/debug.mjs.map +0 -1
- data/node_modules/preact/debug/dist/debug.module.js +0 -2
- data/node_modules/preact/debug/dist/debug.module.js.map +0 -1
- data/node_modules/preact/debug/dist/debug.umd.js +0 -2
- data/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
- data/node_modules/preact/debug/index.js +0 -122
- data/node_modules/preact/devtools.js +0 -403
- data/node_modules/preact/devtools.js.map +0 -1
- data/node_modules/preact/devtools/devtools.js +0 -395
- data/node_modules/preact/devtools/index.js +0 -4
- data/node_modules/preact/dist/preact.d.ts +0 -1712
- data/node_modules/preact/dist/preact.dev.js +0 -727
- data/node_modules/preact/dist/preact.dev.js.map +0 -1
- data/node_modules/preact/dist/preact.js +0 -414
- data/node_modules/preact/dist/preact.js.flow +0 -25
- data/node_modules/preact/dist/preact.js.map +0 -1
- data/node_modules/preact/dist/preact.min.js +0 -2
- data/node_modules/preact/dist/preact.min.js.map +0 -1
- data/node_modules/preact/dist/preact.mjs +0 -724
- data/node_modules/preact/dist/preact.mjs.map +0 -1
- data/node_modules/preact/dist/preact.umd.js +0 -751
- data/node_modules/preact/dist/preact.umd.js.map +0 -1
- data/node_modules/preact/package.json +0 -226
- data/node_modules/preact/src/clone-element.js +0 -18
- data/node_modules/preact/src/component.js +0 -90
- data/node_modules/preact/src/constants.js +0 -17
- data/node_modules/preact/src/dom/index.js +0 -139
- data/node_modules/preact/src/h.js +0 -86
- data/node_modules/preact/src/options.js +0 -22
- data/node_modules/preact/src/preact.d.ts +0 -1712
- data/node_modules/preact/src/preact.js +0 -32
- data/node_modules/preact/src/preact.js.flow +0 -25
- data/node_modules/preact/src/render-queue.js +0 -27
- data/node_modules/preact/src/render.js +0 -22
- data/node_modules/preact/src/util.js +0 -30
- data/node_modules/preact/src/vdom/component-recycler.js +0 -48
- data/node_modules/preact/src/vdom/component.js +0 -296
- data/node_modules/preact/src/vdom/diff.js +0 -337
- data/node_modules/preact/src/vdom/index.js +0 -54
- data/node_modules/preact/src/vnode.js +0 -9
- data/node_modules/preact/typings.json +0 -5
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/h.js","../src/util.js","../src/clone-element.js","../src/constants.js","../src/render-queue.js","../src/vdom/index.js","../src/dom/index.js","../src/vdom/diff.js","../src/vdom/component-recycler.js","../src/vdom/component.js","../src/component.js","../src/vnode.js","../src/options.js","../src/render.js","../src/preact.js"],"names":["nodeName","attributes","lastSimple","child","simple","i","children","EMPTY_CHILDREN","arguments","length","stack","push","pop","String","p","VNode","key","options","vnode","extend","obj","props","applyRef","ref","value","current","cloneElement","h","slice","call","FORCE_RENDER","component","ASYNC_RENDER","defer","rerender","IS_NON_DIMENSIONAL","items","isSameNodeType","node","hydrating","isNamedNode","_componentConstructor","toLowerCase","defaultProps","normalizedNodeName","createNode","isSvg","undefined","createElementNS","document","createElement","parentNode","removeChild","name","removeNode","style","setAccessor","old","test","innerHTML","__html","useCapture","replace","substring","eventProxy","removeEventListener","_listeners","removeAttribute","ns","setAttributeNS","setAttribute","flushMounts","mounts","shift","diffLevel","c","componentDidMount","dom","context","mountAll","parent","componentRoot","isSvgMode","ownerSVGElement","ret","idiff","out","splitText","_component","nodeValue","prevSvgMode","replaceChild","vnodeName","recollectNodeTree","buildComponentFromVNode","ATTR_KEY","appendChild","firstChild","fc","__preactattr_","a","vchildren","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","j","originalChildren","keyed","childNodes","childrenLen","vlen","min","len","_child","__key","keyedLen","vchild","isHydrating","trim","f","unmountOnly","unmountComponent","removeChildren","previousSibling","next","attrs","inst","Ctor","prototype","render","Component","recyclerComponents","createComponent","nextBase","splice","constructor","setComponentProps","renderMode","_disable","__ref","doRender","componentWillMount","componentWillReceiveProps","prevContext","base","SYNC_RENDER","syncComponentUpdates","renderComponent","enqueueRender","previousProps","previousState","state","previousContext","isUpdate","getDerivedStateFromProps","initialBase","snapshot","rendered","cbase","skip","prevState","shouldComponentUpdate","_dirty","getChildContext","prevProps","getSnapshotBeforeUpdate","childComponent","toUnmount","childProps","getNodeProps","initialChildComponent","diff","baseParent","componentRef","t","_parentComponent","componentDidUpdate","afterUpdate","isChild","originalComponent","oldDom","isOwner","_renderCallbacks","isDirectOwner","beforeUnmount","componentWillUnmount","this","callback","Promise","resolve","then","bind","setTimeout","NO_RENDER","setState","forceUpdate","preact","merge","createRef","module","exports","self"],"mappings":"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","file":"preact.min.js","sourcesContent":["import { VNode } from './vnode';\nimport options from './options';\n\n\nconst stack = [];\n\nconst EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility\n * reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a\n * lightweight representation of the structure of a DOM tree. This structure can\n * be realized by recursively comparing it against the current _actual_ DOM\n * structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `<div id=\"foo\" name=\"bar\">Hello!</div>`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string | function} nodeName An element name. Ex: `div`, `a`, `span`, etc.\n * @param {object | null} attributes Any attributes/props to set on the created element.\n * @param {VNode[]} [rest] Additional arguments are taken to be children to\n * append. Can be infinitely nested Arrays.\n *\n * @public\n */\nexport function h(nodeName, attributes) {\n\tlet children=EMPTY_CHILDREN, lastSimple, child, simple, i;\n\tfor (i=arguments.length; i-- > 2; ) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children!=null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop!==undefined) {\n\t\t\tfor (i=child.length; i--; ) stack.push(child[i]);\n\t\t}\n\t\telse {\n\t\t\tif (typeof child==='boolean') child = null;\n\n\t\t\tif ((simple = typeof nodeName!=='function')) {\n\t\t\t\tif (child==null) child = '';\n\t\t\t\telse if (typeof child==='number') child = String(child);\n\t\t\t\telse if (typeof child!=='string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length-1] += child;\n\t\t\t}\n\t\t\telse if (children===EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tlet p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes==null ? undefined : attributes;\n\tp.key = attributes==null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode!==undefined) options.vnode(p);\n\n\treturn p;\n}\n","/**\n * Copy all properties from `props` onto `obj`.\n * @param {object} obj Object onto which properties should be copied.\n * @param {object} props Object from which to copy properties.\n * @returns {object}\n * @private\n */\nexport function extend(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn obj;\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nexport function applyRef(ref, value) {\n\tif (ref) {\n\t\tif (typeof ref=='function') ref(value);\n\t\telse ref.current = value;\n\t}\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer = typeof Promise=='function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n","import { extend } from './util';\nimport { h } from './h';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {import('./vnode').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./vnode').VNode>} [rest] Any additional arguments will be used as replacement\n * children.\n */\nexport function cloneElement(vnode, props) {\n\treturn h(\n\t\tvnode.nodeName,\n\t\textend(extend({}, vnode.attributes), props),\n\t\targuments.length>2 ? [].slice.call(arguments, 2) : vnode.children\n\t);\n}\n","// render modes\n\n/** Do not re-render a component */\nexport const NO_RENDER = 0;\n/** Synchronously re-render a component and its children */\nexport const SYNC_RENDER = 1;\n/** Synchronously re-render a component, even if its lifecycle methods attempt to prevent it. */\nexport const FORCE_RENDER = 2;\n/** Queue asynchronous re-render of a component and it's children */\nexport const ASYNC_RENDER = 3;\n\n\nexport const ATTR_KEY = '__preactattr_';\n\n/** DOM properties that should NOT have \"px\" added when numeric */\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n","import options from './options';\nimport { defer } from './util';\nimport { renderComponent } from './vdom/component';\n\n/**\n * Managed queue of dirty components to be re-rendered\n * @type {Array<import('./component').Component>}\n */\nlet items = [];\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./component').Component} component The component to rerender\n */\nexport function enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component)==1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\n/** Rerender all enqueued dirty components */\nexport function rerender() {\n\tlet p;\n\twhile ( (p = items.pop()) ) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n","import { extend } from '../util';\n\n\n/**\n * Check if two nodes are equivalent.\n * @param {import('../dom').PreactElement} node DOM Node to compare\n * @param {import('../vnode').VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors\n * when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode==='string' || typeof vnode==='number') {\n\t\treturn node.splitText!==undefined;\n\t}\n\tif (typeof vnode.nodeName==='string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor===vnode.nodeName;\n}\n\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n * @param {import('../dom').PreactElement} node A DOM Element to inspect the name of.\n * @param {string} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName===nodeName || node.nodeName.toLowerCase()===nodeName.toLowerCase();\n}\n\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n * @param {import('../vnode').VNode} vnode The VNode to get props for\n * @returns {object} The props to use for this VNode\n */\nexport function getNodeProps(vnode) {\n\tlet props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tlet defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps!==undefined) {\n\t\tfor (let i in defaultProps) {\n\t\t\tif (props[i]===undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport { applyRef } from '../util';\nimport options from '../options';\n\n/**\n * A DOM event listener\n * @typedef {(e: Event) => void} EventListner\n */\n\n/**\n * A mapping of event types to event listeners\n * @typedef {Object.<string, EventListener>} EventListenerMap\n */\n\n/**\n * Properties Preact adds to elements it creates\n * @typedef PreactElementExtensions\n * @property {string} [normalizedNodeName] A normalized node name to use in diffing\n * @property {EventListenerMap} [_listeners] A map of event listeners added by components to this DOM node\n * @property {import('../component').Component} [_component] The component that rendered this DOM node\n * @property {function} [_componentConstructor] The constructor of the component that rendered this DOM node\n */\n\n/**\n * A DOM element that has been extended with Preact properties\n * @typedef {Element & ElementCSSInlineStyle & PreactElementExtensions} PreactElement\n */\n\n/**\n * Create an element with the given nodeName.\n * @param {string} nodeName The DOM node to create\n * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG\n * namespace.\n * @returns {PreactElement} The created DOM node\n */\nexport function createNode(nodeName, isSvg) {\n\t/** @type {PreactElement} */\n\tlet node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n\n/**\n * Remove a child node from its parent if attached.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n\n/**\n * Set a named attribute on the given Node, with special behavior for some names\n * and event handlers. If `value` is `null`, the attribute/handler will be\n * removed.\n * @param {PreactElement} node An element to mutate\n * @param {string} name The name/key to set, such as an event or attribute name\n * @param {*} old The last value that was set for this name/node pair\n * @param {*} value An attribute value, such as a function to be used as an\n * event handler\n * @param {boolean} isSvg Are we currently diffing inside an svg?\n * @private\n */\nexport function setAccessor(node, name, old, value, isSvg) {\n\tif (name==='className') name = 'class';\n\n\n\tif (name==='key') {\n\t\t// ignore\n\t}\n\telse if (name==='ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t}\n\telse if (name==='class' && !isSvg) {\n\t\tnode.className = value || '';\n\t}\n\telse if (name==='style') {\n\t\tif (!value || typeof value==='string' || typeof old==='string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value==='object') {\n\t\t\tif (typeof old!=='string') {\n\t\t\t\tfor (let i in old) if (!(i in value)) node.style[i] = '';\n\t\t\t}\n\t\t\tfor (let i in value) {\n\t\t\t\tnode.style[i] = typeof value[i]==='number' && IS_NON_DIMENSIONAL.test(i)===false ? (value[i]+'px') : value[i];\n\t\t\t}\n\t\t}\n\t}\n\telse if (name==='dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t}\n\telse if (name[0]=='o' && name[1]=='n') {\n\t\tlet useCapture = name !== (name=name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\telse {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t}\n\telse if (name!=='list' && name!=='type' && !isSvg && name in node) {\n\t\t// Attempt to set a DOM property to the given value.\n\t\t// IE & FF throw for certain property-value combinations.\n\t\ttry {\n\t\t\tnode[name] = value==null ? '' : value;\n\t\t} catch (e) { }\n\t\tif ((value==null || value===false) && name!='spellcheck') node.removeAttribute(name);\n\t}\n\telse {\n\t\tlet ns = isSvg && (name !== (name = name.replace(/^xlink:?/, '')));\n\t\t// spellcheck is treated differently than all other boolean values and\n\t\t// should not be removed when the value is `false`. See:\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-spellcheck\n\t\tif (value==null || value===false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());\n\t\t\telse node.removeAttribute(name);\n\t\t}\n\t\telse if (typeof value!=='function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);\n\t\t\telse node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n","import { ATTR_KEY } from '../constants';\nimport { isSameNodeType, isNamedNode } from './index';\nimport { buildComponentFromVNode } from './component';\nimport { createNode, setAccessor } from '../dom/index';\nimport { unmountComponent } from './component';\nimport options from '../options';\nimport { applyRef } from '../util';\nimport { removeNode } from '../dom/index';\n\n/**\n * Queue of components that have been mounted and are awaiting componentDidMount\n * @type {Array<import('../component').Component>}\n */\nexport const mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nexport let diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nlet isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nexport function flushMounts() {\n\tlet c;\n\twhile ((c = mounts.shift())) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n\n/**\n * Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`\n * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing\n * the desired DOM structure\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {Element} parent ?\n * @param {boolean} componentRoot ?\n * @returns {import('../dom').PreactElement} The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent!=null && parent.ownerSVGElement!==undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom!=null && !(ATTR_KEY in dom);\n\t}\n\n\tlet ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode!==parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (!--diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n\n/**\n * Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing.\n * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`\n * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {boolean} [componentRoot] ?\n * @private\n */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tlet out = dom,\n\t\tprevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode==null || typeof vnode==='boolean') vnode = '';\n\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode==='string' || typeof vnode==='number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText!==undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue!=vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout[ATTR_KEY] = true;\n\n\t\treturn out;\n\t}\n\n\n\t// If the VNode represents a Component, perform a component diff:\n\tlet vnodeName = vnode.nodeName;\n\tif (typeof vnodeName==='function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName==='svg' ? true : vnodeName==='foreignObject' ? false : isSvgMode;\n\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) out.appendChild(dom.firstChild);\n\n\t\t\t// if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\n\tlet fc = out.firstChild,\n\t\tprops = out[ATTR_KEY],\n\t\tvchildren = vnode.children;\n\n\tif (props==null) {\n\t\tprops = out[ATTR_KEY] = {};\n\t\tfor (let a=out.attributes, i=a.length; i--; ) props[a[i].name] = a[i].value;\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length===1 && typeof vchildren[0]==='string' && fc!=null && fc.splitText!==undefined && fc.nextSibling==null) {\n\t\tif (fc.nodeValue!=vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc!=null) {\n\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML!=null);\n\t}\n\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n\n/**\n * Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {import('../dom').PreactElement} dom Element whose children should be compared & mutated\n * @param {Array<import('../vnode').VNode>} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {object} context Implicitly descendant context object (from most\n * recent `getChildContext()`)\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @param {boolean} isHydrating if `true`, consumes externally created elements\n * similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tlet originalChildren = dom.childNodes,\n\t\tchildren = [],\n\t\tkeyed = {},\n\t\tkeyedLen = 0,\n\t\tmin = 0,\n\t\tlen = originalChildren.length,\n\t\tchildrenLen = 0,\n\t\tvlen = vchildren ? vchildren.length : 0,\n\t\tj, c, f, vchild, child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len!==0) {\n\t\tfor (let i=0; i<len; i++) {\n\t\t\tlet child = originalChildren[i],\n\t\t\t\tprops = child[ATTR_KEY],\n\t\t\t\tkey = vlen && props ? child._component ? child._component.__key : props.key : null;\n\t\t\tif (key!=null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = child;\n\t\t\t}\n\t\t\telse if (props || (child.splitText!==undefined ? (isHydrating ? child.nodeValue.trim() : true) : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen!==0) {\n\t\tfor (let i=0; i<vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tlet key = vchild.key;\n\t\t\tif (key!=null) {\n\t\t\t\tif (keyedLen && keyed[key]!==undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (min<childrenLen) {\n\t\t\t\tfor (j=min; j<childrenLen; j++) {\n\t\t\t\t\tif (children[j]!==undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\tif (j===childrenLen-1) childrenLen--;\n\t\t\t\t\t\tif (j===min) min++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child!==dom && child!==f) {\n\t\t\t\tif (f==null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t}\n\t\t\t\telse if (child===f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (let i in keyed) if (keyed[i]!==undefined) recollectNodeTree(keyed[i], false);\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min<=childrenLen) {\n\t\tif ((child = children[childrenLen--])!==undefined) recollectNodeTree(child, false);\n\t}\n}\n\n\n\n/**\n * Recursively recycle (or just unmount) a node and its descendants.\n * @param {import('../dom').PreactElement} node DOM node to start\n * unmount/removal from\n * @param {boolean} [unmountOnly=false] If `true`, only triggers unmount\n * lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n\tlet component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t}\n\telse {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node[ATTR_KEY]!=null) applyRef(node[ATTR_KEY].ref, null);\n\n\t\tif (unmountOnly===false || node[ATTR_KEY]==null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n\n/**\n * Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tlet next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n\n/**\n * Apply differences in attributes from a VNode to the given DOM Element.\n * @param {import('../dom').PreactElement} dom Element with attributes to diff `attrs` against\n * @param {object} attrs The desired end-state key-value attribute pairs\n * @param {object} old Current/previous attributes (from previous VNode or\n * element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tlet name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name]!=null) && old[name]!=null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name!=='children' && name!=='innerHTML' && (!(name in old) || attrs[name]!==(name==='value' || name==='checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n","import { Component } from '../component';\n\n/**\n * Retains a pool of Components for re-use.\n * @type {Component[]}\n * @private\n */\nexport const recyclerComponents = [];\n\n\n/**\n * Create a component. Normalizes differences between PFC's and classful\n * Components.\n * @param {function} Ctor The constructor of the component to create\n * @param {object} props The initial props of the component\n * @param {object} context The initial context of the component\n * @returns {import('../component').Component}\n */\nexport function createComponent(Ctor, props, context) {\n\tlet inst, i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t}\n\telse {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor===Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { SYNC_RENDER, NO_RENDER, FORCE_RENDER, ASYNC_RENDER, ATTR_KEY } from '../constants';\nimport options from '../options';\nimport { extend, applyRef } from '../util';\nimport { enqueueRender } from '../render-queue';\nimport { getNodeProps } from './index';\nimport { diff, mounts, diffLevel, flushMounts, recollectNodeTree, removeChildren } from './diff';\nimport { createComponent, recyclerComponents } from './component-recycler';\nimport { removeNode } from '../dom/index';\n\n/**\n * Set a component's `props` and possibly re-render the component\n * @param {import('../component').Component} component The Component to set props on\n * @param {object} props The new props\n * @param {number} renderMode Render options - specifies how to re-render the component\n * @param {object} context The new context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n */\nexport function setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t}\n\t\telse if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context!==component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode!==NO_RENDER) {\n\t\tif (renderMode===SYNC_RENDER || options.syncComponentUpdates!==false || !component.base) {\n\t\t\trenderComponent(component, SYNC_RENDER, mountAll);\n\t\t}\n\t\telse {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\n\n\n/**\n * Render a Component, triggering necessary lifecycle events and taking\n * High-Order Components into account.\n * @param {import('../component').Component} component The component to render\n * @param {number} [renderMode] render mode, see constants.js for available options.\n * @param {boolean} [mountAll] Whether or not to immediately mount all components\n * @param {boolean} [isChild] ?\n * @private\n */\nexport function renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tlet props = component.props,\n\t\tstate = component.state,\n\t\tcontext = component.context,\n\t\tpreviousProps = component.prevProps || props,\n\t\tpreviousState = component.prevState || state,\n\t\tpreviousContext = component.prevContext || context,\n\t\tisUpdate = component.base,\n\t\tnextBase = component.nextBase,\n\t\tinitialBase = isUpdate || nextBase,\n\t\tinitialChildComponent = component._component,\n\t\tskip = false,\n\t\tsnapshot = previousContext,\n\t\trendered, inst, cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode!==FORCE_RENDER\n\t\t\t&& component.shouldComponentUpdate\n\t\t\t&& component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t}\n\t\telse if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tlet childComponent = rendered && rendered.nodeName,\n\t\t\ttoUnmount, base;\n\n\t\tif (typeof childComponent==='function') {\n\t\t\t// set up high order component link\n\n\t\t\tlet childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor===childComponent && childProps.key==inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, SYNC_RENDER, context, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, NO_RENDER, context, false);\n\t\t\t\trenderComponent(inst, SYNC_RENDER, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t}\n\t\telse {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode===SYNC_RENDER) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base!==initialBase && inst!==initialChildComponent) {\n\t\t\tlet baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base!==baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tlet componentRef = component,\n\t\t\t\tt = component;\n\t\t\twhile ((t=t._parentComponent)) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t}\n\telse if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) component._renderCallbacks.pop().call(component);\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n\n\n/**\n * Apply the Component referenced by a VNode to the DOM.\n * @param {import('../dom').PreactElement} dom The DOM node to mutate\n * @param {import('../vnode').VNode} vnode A Component-referencing VNode\n * @param {object} context The current context\n * @param {boolean} mountAll Whether or not to immediately mount all components\n * @returns {import('../dom').PreactElement} The created/mutated element\n * @private\n */\nexport function buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tlet c = dom && dom._component,\n\t\toriginalComponent = c,\n\t\toldDom = dom,\n\t\tisDirectOwner = c && dom._componentConstructor===vnode.nodeName,\n\t\tisOwner = isDirectOwner,\n\t\tprops = getNodeProps(vnode);\n\twhile (c && !isOwner && (c=c._parentComponent)) {\n\t\tisOwner = c.constructor===vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, ASYNC_RENDER, context, mountAll);\n\t\tdom = c.base;\n\t}\n\telse {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, SYNC_RENDER, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom!==oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n\n\n/**\n * Remove a component from the DOM and recycle it.\n * @param {import('../component').Component} component The Component instance to unmount\n * @private\n */\nexport function unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tlet base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tlet inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t}\n\telse if (base) {\n\t\tif (base[ATTR_KEY]!=null) applyRef(base[ATTR_KEY].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n","import { FORCE_RENDER } from './constants';\nimport { extend } from './util';\nimport { renderComponent } from './vdom/component';\nimport { enqueueRender } from './render-queue';\n/**\n * Base Component class.\n * Provides `setState()` and `forceUpdate()`, which trigger rendering.\n * @typedef {object} Component\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components' getChildContext\n * @public\n *\n * @example\n * class MyFoo extends Component {\n * render(props, state) {\n * return <div />;\n * }\n * }\n */\nexport function Component(props, context) {\n\tthis._dirty = true;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.context = context;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.props = props;\n\n\t/**\n\t * @public\n\t * @type {object}\n\t */\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\n\nextend(Component.prototype, {\n\n\t/**\n\t * Update component state and schedule a re-render.\n\t * @param {object} state A dict of state properties to be shallowly merged\n\t * \tinto the current state, or a function that will produce such a dict. The\n\t * \tfunction is called with the current state and props.\n\t * @param {() => void} callback A function to be called once component state is\n\t * \tupdated\n\t */\n\tsetState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(\n\t\t\textend({}, this.state),\n\t\t\ttypeof state === 'function' ? state(this.state, this.props) : state\n\t\t);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/**\n\t * Immediately perform a synchronous re-render of the component.\n\t * @param {() => void} callback A function to be called after component is\n\t * \tre-rendered.\n\t * @private\n\t */\n\tforceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, FORCE_RENDER);\n\t},\n\n\n\t/**\n\t * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n\t * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n\t * @param {object} props Props (eg: JSX attributes) received from parent\n\t * \telement/component\n\t * @param {object} state The component's current state\n\t * @param {object} context Context object, as returned by the nearest\n\t * ancestor's `getChildContext()`\n\t * @returns {import('./vnode').VNode | void}\n\t */\n\trender() {}\n\n});\n","/**\n * Virtual DOM Node\n * @typedef VNode\n * @property {string | function} nodeName The string of the DOM node to create or Component constructor to render\n * @property {Array<VNode | string>} children The children of node\n * @property {string | number | undefined} key The key used to identify this VNode in a list\n * @property {object} attributes The properties of this VNode\n */\nexport const VNode = function VNode() {};\n","/**\n * @typedef {import('./component').Component} Component\n * @typedef {import('./vnode').VNode} VNode\n */\n\n/**\n * Global options\n * @public\n * @typedef Options\n * @property {boolean} [syncComponentUpdates] If `true`, `prop` changes trigger synchronous component updates. Defaults to true.\n * @property {(vnode: VNode) => void} [vnode] Processes all created VNodes.\n * @property {(component: Component) => void} [afterMount] Hook invoked after a component is mounted.\n * @property {(component: Component) => void} [afterUpdate] Hook invoked after the DOM is updated with a component's latest render.\n * @property {(component: Component) => void} [beforeUnmount] Hook invoked immediately before a component is unmounted.\n * @property {(rerender: function) => void} [debounceRendering] Hook invoked whenever a rerender is requested. Can be used to debounce rerenders.\n * @property {(event: Event) => Event | void} [event] Hook invoked before any Preact event listeners. The return value (if any) replaces the native browser event given to event listeners\n */\n\n/** @type {Options} */\nconst options = {};\n\nexport default options;\n","import { diff } from './vdom/diff';\n\n/**\n * Render JSX into a `parent` Element.\n * @param {import('./vnode').VNode} vnode A (JSX) VNode to render\n * @param {import('./dom').PreactElement} parent DOM element to render into\n * @param {import('./dom').PreactElement} [merge] Attempt to re-use an existing DOM tree rooted at\n * `merge`\n * @public\n *\n * @example\n * // render a div into <body>:\n * render(<div id=\"hello\">hello!</div>, document.body);\n *\n * @example\n * // render a \"Thing\" component into #foo:\n * const Thing = ({ name }) => <span>{ name }</span>;\n * render(<Thing name=\"one\" />, document.querySelector('#foo'));\n */\nexport function render(vnode, parent, merge) {\n\treturn diff(merge, vnode, {}, false, parent, false);\n}\n","import { h, h as createElement } from './h';\nimport { cloneElement } from './clone-element';\nimport { Component } from './component';\nimport { render } from './render';\nimport { rerender } from './render-queue';\nimport options from './options';\n\nfunction createRef() {\n\treturn {};\n}\n\nexport default {\n\th,\n\tcreateElement,\n\tcloneElement,\n\tcreateRef,\n\tComponent,\n\trender,\n\trerender,\n\toptions\n};\n\nexport {\n\th,\n\tcreateElement,\n\tcloneElement,\n\tcreateRef,\n\tComponent,\n\trender,\n\trerender,\n\toptions\n};\n"]}
|
@@ -1,724 +0,0 @@
|
|
1
|
-
var VNode = function VNode() {};
|
2
|
-
|
3
|
-
var options = {};
|
4
|
-
|
5
|
-
var stack = [];
|
6
|
-
|
7
|
-
var EMPTY_CHILDREN = [];
|
8
|
-
|
9
|
-
function h(nodeName, attributes) {
|
10
|
-
var children = EMPTY_CHILDREN,
|
11
|
-
lastSimple,
|
12
|
-
child,
|
13
|
-
simple,
|
14
|
-
i;
|
15
|
-
for (i = arguments.length; i-- > 2;) {
|
16
|
-
stack.push(arguments[i]);
|
17
|
-
}
|
18
|
-
if (attributes && attributes.children != null) {
|
19
|
-
if (!stack.length) stack.push(attributes.children);
|
20
|
-
delete attributes.children;
|
21
|
-
}
|
22
|
-
while (stack.length) {
|
23
|
-
if ((child = stack.pop()) && child.pop !== undefined) {
|
24
|
-
for (i = child.length; i--;) {
|
25
|
-
stack.push(child[i]);
|
26
|
-
}
|
27
|
-
} else {
|
28
|
-
if (typeof child === 'boolean') child = null;
|
29
|
-
|
30
|
-
if (simple = typeof nodeName !== 'function') {
|
31
|
-
if (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;
|
32
|
-
}
|
33
|
-
|
34
|
-
if (simple && lastSimple) {
|
35
|
-
children[children.length - 1] += child;
|
36
|
-
} else if (children === EMPTY_CHILDREN) {
|
37
|
-
children = [child];
|
38
|
-
} else {
|
39
|
-
children.push(child);
|
40
|
-
}
|
41
|
-
|
42
|
-
lastSimple = simple;
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
|
-
var p = new VNode();
|
47
|
-
p.nodeName = nodeName;
|
48
|
-
p.children = children;
|
49
|
-
p.attributes = attributes == null ? undefined : attributes;
|
50
|
-
p.key = attributes == null ? undefined : attributes.key;
|
51
|
-
|
52
|
-
if (options.vnode !== undefined) options.vnode(p);
|
53
|
-
|
54
|
-
return p;
|
55
|
-
}
|
56
|
-
|
57
|
-
function extend(obj, props) {
|
58
|
-
for (var i in props) {
|
59
|
-
obj[i] = props[i];
|
60
|
-
}return obj;
|
61
|
-
}
|
62
|
-
|
63
|
-
function applyRef(ref, value) {
|
64
|
-
if (ref) {
|
65
|
-
if (typeof ref == 'function') ref(value);else ref.current = value;
|
66
|
-
}
|
67
|
-
}
|
68
|
-
|
69
|
-
var defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;
|
70
|
-
|
71
|
-
function cloneElement(vnode, props) {
|
72
|
-
return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);
|
73
|
-
}
|
74
|
-
|
75
|
-
var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;
|
76
|
-
|
77
|
-
var items = [];
|
78
|
-
|
79
|
-
function enqueueRender(component) {
|
80
|
-
if (!component._dirty && (component._dirty = true) && items.push(component) == 1) {
|
81
|
-
(options.debounceRendering || defer)(rerender);
|
82
|
-
}
|
83
|
-
}
|
84
|
-
|
85
|
-
function rerender() {
|
86
|
-
var p;
|
87
|
-
while (p = items.pop()) {
|
88
|
-
if (p._dirty) renderComponent(p);
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
function isSameNodeType(node, vnode, hydrating) {
|
93
|
-
if (typeof vnode === 'string' || typeof vnode === 'number') {
|
94
|
-
return node.splitText !== undefined;
|
95
|
-
}
|
96
|
-
if (typeof vnode.nodeName === 'string') {
|
97
|
-
return !node._componentConstructor && isNamedNode(node, vnode.nodeName);
|
98
|
-
}
|
99
|
-
return hydrating || node._componentConstructor === vnode.nodeName;
|
100
|
-
}
|
101
|
-
|
102
|
-
function isNamedNode(node, nodeName) {
|
103
|
-
return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();
|
104
|
-
}
|
105
|
-
|
106
|
-
function getNodeProps(vnode) {
|
107
|
-
var props = extend({}, vnode.attributes);
|
108
|
-
props.children = vnode.children;
|
109
|
-
|
110
|
-
var defaultProps = vnode.nodeName.defaultProps;
|
111
|
-
if (defaultProps !== undefined) {
|
112
|
-
for (var i in defaultProps) {
|
113
|
-
if (props[i] === undefined) {
|
114
|
-
props[i] = defaultProps[i];
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
|
119
|
-
return props;
|
120
|
-
}
|
121
|
-
|
122
|
-
function createNode(nodeName, isSvg) {
|
123
|
-
var node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);
|
124
|
-
node.normalizedNodeName = nodeName;
|
125
|
-
return node;
|
126
|
-
}
|
127
|
-
|
128
|
-
function removeNode(node) {
|
129
|
-
var parentNode = node.parentNode;
|
130
|
-
if (parentNode) parentNode.removeChild(node);
|
131
|
-
}
|
132
|
-
|
133
|
-
function setAccessor(node, name, old, value, isSvg) {
|
134
|
-
if (name === 'className') name = 'class';
|
135
|
-
|
136
|
-
if (name === 'key') {} else if (name === 'ref') {
|
137
|
-
applyRef(old, null);
|
138
|
-
applyRef(value, node);
|
139
|
-
} else if (name === 'class' && !isSvg) {
|
140
|
-
node.className = value || '';
|
141
|
-
} else if (name === 'style') {
|
142
|
-
if (!value || typeof value === 'string' || typeof old === 'string') {
|
143
|
-
node.style.cssText = value || '';
|
144
|
-
}
|
145
|
-
if (value && typeof value === 'object') {
|
146
|
-
if (typeof old !== 'string') {
|
147
|
-
for (var i in old) {
|
148
|
-
if (!(i in value)) node.style[i] = '';
|
149
|
-
}
|
150
|
-
}
|
151
|
-
for (var i in value) {
|
152
|
-
node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];
|
153
|
-
}
|
154
|
-
}
|
155
|
-
} else if (name === 'dangerouslySetInnerHTML') {
|
156
|
-
if (value) node.innerHTML = value.__html || '';
|
157
|
-
} else if (name[0] == 'o' && name[1] == 'n') {
|
158
|
-
var useCapture = name !== (name = name.replace(/Capture$/, ''));
|
159
|
-
name = name.toLowerCase().substring(2);
|
160
|
-
if (value) {
|
161
|
-
if (!old) node.addEventListener(name, eventProxy, useCapture);
|
162
|
-
} else {
|
163
|
-
node.removeEventListener(name, eventProxy, useCapture);
|
164
|
-
}
|
165
|
-
(node._listeners || (node._listeners = {}))[name] = value;
|
166
|
-
} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {
|
167
|
-
try {
|
168
|
-
node[name] = value == null ? '' : value;
|
169
|
-
} catch (e) {}
|
170
|
-
if ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);
|
171
|
-
} else {
|
172
|
-
var ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));
|
173
|
-
|
174
|
-
if (value == null || value === false) {
|
175
|
-
if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);
|
176
|
-
} else if (typeof value !== 'function') {
|
177
|
-
if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);
|
178
|
-
}
|
179
|
-
}
|
180
|
-
}
|
181
|
-
|
182
|
-
function eventProxy(e) {
|
183
|
-
return this._listeners[e.type](options.event && options.event(e) || e);
|
184
|
-
}
|
185
|
-
|
186
|
-
var mounts = [];
|
187
|
-
|
188
|
-
var diffLevel = 0;
|
189
|
-
|
190
|
-
var isSvgMode = false;
|
191
|
-
|
192
|
-
var hydrating = false;
|
193
|
-
|
194
|
-
function flushMounts() {
|
195
|
-
var c;
|
196
|
-
while (c = mounts.shift()) {
|
197
|
-
if (options.afterMount) options.afterMount(c);
|
198
|
-
if (c.componentDidMount) c.componentDidMount();
|
199
|
-
}
|
200
|
-
}
|
201
|
-
|
202
|
-
function diff(dom, vnode, context, mountAll, parent, componentRoot) {
|
203
|
-
if (!diffLevel++) {
|
204
|
-
isSvgMode = parent != null && parent.ownerSVGElement !== undefined;
|
205
|
-
|
206
|
-
hydrating = dom != null && !('__preactattr_' in dom);
|
207
|
-
}
|
208
|
-
|
209
|
-
var ret = idiff(dom, vnode, context, mountAll, componentRoot);
|
210
|
-
|
211
|
-
if (parent && ret.parentNode !== parent) parent.appendChild(ret);
|
212
|
-
|
213
|
-
if (! --diffLevel) {
|
214
|
-
hydrating = false;
|
215
|
-
|
216
|
-
if (!componentRoot) flushMounts();
|
217
|
-
}
|
218
|
-
|
219
|
-
return ret;
|
220
|
-
}
|
221
|
-
|
222
|
-
function idiff(dom, vnode, context, mountAll, componentRoot) {
|
223
|
-
var out = dom,
|
224
|
-
prevSvgMode = isSvgMode;
|
225
|
-
|
226
|
-
if (vnode == null || typeof vnode === 'boolean') vnode = '';
|
227
|
-
|
228
|
-
if (typeof vnode === 'string' || typeof vnode === 'number') {
|
229
|
-
if (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {
|
230
|
-
if (dom.nodeValue != vnode) {
|
231
|
-
dom.nodeValue = vnode;
|
232
|
-
}
|
233
|
-
} else {
|
234
|
-
out = document.createTextNode(vnode);
|
235
|
-
if (dom) {
|
236
|
-
if (dom.parentNode) dom.parentNode.replaceChild(out, dom);
|
237
|
-
recollectNodeTree(dom, true);
|
238
|
-
}
|
239
|
-
}
|
240
|
-
|
241
|
-
out['__preactattr_'] = true;
|
242
|
-
|
243
|
-
return out;
|
244
|
-
}
|
245
|
-
|
246
|
-
var vnodeName = vnode.nodeName;
|
247
|
-
if (typeof vnodeName === 'function') {
|
248
|
-
return buildComponentFromVNode(dom, vnode, context, mountAll);
|
249
|
-
}
|
250
|
-
|
251
|
-
isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;
|
252
|
-
|
253
|
-
vnodeName = String(vnodeName);
|
254
|
-
if (!dom || !isNamedNode(dom, vnodeName)) {
|
255
|
-
out = createNode(vnodeName, isSvgMode);
|
256
|
-
|
257
|
-
if (dom) {
|
258
|
-
while (dom.firstChild) {
|
259
|
-
out.appendChild(dom.firstChild);
|
260
|
-
}
|
261
|
-
if (dom.parentNode) dom.parentNode.replaceChild(out, dom);
|
262
|
-
|
263
|
-
recollectNodeTree(dom, true);
|
264
|
-
}
|
265
|
-
}
|
266
|
-
|
267
|
-
var fc = out.firstChild,
|
268
|
-
props = out['__preactattr_'],
|
269
|
-
vchildren = vnode.children;
|
270
|
-
|
271
|
-
if (props == null) {
|
272
|
-
props = out['__preactattr_'] = {};
|
273
|
-
for (var a = out.attributes, i = a.length; i--;) {
|
274
|
-
props[a[i].name] = a[i].value;
|
275
|
-
}
|
276
|
-
}
|
277
|
-
|
278
|
-
if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {
|
279
|
-
if (fc.nodeValue != vchildren[0]) {
|
280
|
-
fc.nodeValue = vchildren[0];
|
281
|
-
}
|
282
|
-
} else if (vchildren && vchildren.length || fc != null) {
|
283
|
-
innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);
|
284
|
-
}
|
285
|
-
|
286
|
-
diffAttributes(out, vnode.attributes, props);
|
287
|
-
|
288
|
-
isSvgMode = prevSvgMode;
|
289
|
-
|
290
|
-
return out;
|
291
|
-
}
|
292
|
-
|
293
|
-
function innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {
|
294
|
-
var originalChildren = dom.childNodes,
|
295
|
-
children = [],
|
296
|
-
keyed = {},
|
297
|
-
keyedLen = 0,
|
298
|
-
min = 0,
|
299
|
-
len = originalChildren.length,
|
300
|
-
childrenLen = 0,
|
301
|
-
vlen = vchildren ? vchildren.length : 0,
|
302
|
-
j,
|
303
|
-
c,
|
304
|
-
f,
|
305
|
-
vchild,
|
306
|
-
child;
|
307
|
-
|
308
|
-
if (len !== 0) {
|
309
|
-
for (var i = 0; i < len; i++) {
|
310
|
-
var _child = originalChildren[i],
|
311
|
-
props = _child['__preactattr_'],
|
312
|
-
key = vlen && props ? _child._component ? _child._component.__key : props.key : null;
|
313
|
-
if (key != null) {
|
314
|
-
keyedLen++;
|
315
|
-
keyed[key] = _child;
|
316
|
-
} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {
|
317
|
-
children[childrenLen++] = _child;
|
318
|
-
}
|
319
|
-
}
|
320
|
-
}
|
321
|
-
|
322
|
-
if (vlen !== 0) {
|
323
|
-
for (var i = 0; i < vlen; i++) {
|
324
|
-
vchild = vchildren[i];
|
325
|
-
child = null;
|
326
|
-
|
327
|
-
var key = vchild.key;
|
328
|
-
if (key != null) {
|
329
|
-
if (keyedLen && keyed[key] !== undefined) {
|
330
|
-
child = keyed[key];
|
331
|
-
keyed[key] = undefined;
|
332
|
-
keyedLen--;
|
333
|
-
}
|
334
|
-
} else if (min < childrenLen) {
|
335
|
-
for (j = min; j < childrenLen; j++) {
|
336
|
-
if (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {
|
337
|
-
child = c;
|
338
|
-
children[j] = undefined;
|
339
|
-
if (j === childrenLen - 1) childrenLen--;
|
340
|
-
if (j === min) min++;
|
341
|
-
break;
|
342
|
-
}
|
343
|
-
}
|
344
|
-
}
|
345
|
-
|
346
|
-
child = idiff(child, vchild, context, mountAll);
|
347
|
-
|
348
|
-
f = originalChildren[i];
|
349
|
-
if (child && child !== dom && child !== f) {
|
350
|
-
if (f == null) {
|
351
|
-
dom.appendChild(child);
|
352
|
-
} else if (child === f.nextSibling) {
|
353
|
-
removeNode(f);
|
354
|
-
} else {
|
355
|
-
dom.insertBefore(child, f);
|
356
|
-
}
|
357
|
-
}
|
358
|
-
}
|
359
|
-
}
|
360
|
-
|
361
|
-
if (keyedLen) {
|
362
|
-
for (var i in keyed) {
|
363
|
-
if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);
|
364
|
-
}
|
365
|
-
}
|
366
|
-
|
367
|
-
while (min <= childrenLen) {
|
368
|
-
if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);
|
369
|
-
}
|
370
|
-
}
|
371
|
-
|
372
|
-
function recollectNodeTree(node, unmountOnly) {
|
373
|
-
var component = node._component;
|
374
|
-
if (component) {
|
375
|
-
unmountComponent(component);
|
376
|
-
} else {
|
377
|
-
if (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);
|
378
|
-
|
379
|
-
if (unmountOnly === false || node['__preactattr_'] == null) {
|
380
|
-
removeNode(node);
|
381
|
-
}
|
382
|
-
|
383
|
-
removeChildren(node);
|
384
|
-
}
|
385
|
-
}
|
386
|
-
|
387
|
-
function removeChildren(node) {
|
388
|
-
node = node.lastChild;
|
389
|
-
while (node) {
|
390
|
-
var next = node.previousSibling;
|
391
|
-
recollectNodeTree(node, true);
|
392
|
-
node = next;
|
393
|
-
}
|
394
|
-
}
|
395
|
-
|
396
|
-
function diffAttributes(dom, attrs, old) {
|
397
|
-
var name;
|
398
|
-
|
399
|
-
for (name in old) {
|
400
|
-
if (!(attrs && attrs[name] != null) && old[name] != null) {
|
401
|
-
setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);
|
402
|
-
}
|
403
|
-
}
|
404
|
-
|
405
|
-
for (name in attrs) {
|
406
|
-
if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {
|
407
|
-
setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);
|
408
|
-
}
|
409
|
-
}
|
410
|
-
}
|
411
|
-
|
412
|
-
var recyclerComponents = [];
|
413
|
-
|
414
|
-
function createComponent(Ctor, props, context) {
|
415
|
-
var inst,
|
416
|
-
i = recyclerComponents.length;
|
417
|
-
|
418
|
-
if (Ctor.prototype && Ctor.prototype.render) {
|
419
|
-
inst = new Ctor(props, context);
|
420
|
-
Component.call(inst, props, context);
|
421
|
-
} else {
|
422
|
-
inst = new Component(props, context);
|
423
|
-
inst.constructor = Ctor;
|
424
|
-
inst.render = doRender;
|
425
|
-
}
|
426
|
-
|
427
|
-
while (i--) {
|
428
|
-
if (recyclerComponents[i].constructor === Ctor) {
|
429
|
-
inst.nextBase = recyclerComponents[i].nextBase;
|
430
|
-
recyclerComponents.splice(i, 1);
|
431
|
-
return inst;
|
432
|
-
}
|
433
|
-
}
|
434
|
-
|
435
|
-
return inst;
|
436
|
-
}
|
437
|
-
|
438
|
-
function doRender(props, state, context) {
|
439
|
-
return this.constructor(props, context);
|
440
|
-
}
|
441
|
-
|
442
|
-
function setComponentProps(component, props, renderMode, context, mountAll) {
|
443
|
-
if (component._disable) return;
|
444
|
-
component._disable = true;
|
445
|
-
|
446
|
-
component.__ref = props.ref;
|
447
|
-
component.__key = props.key;
|
448
|
-
delete props.ref;
|
449
|
-
delete props.key;
|
450
|
-
|
451
|
-
if (typeof component.constructor.getDerivedStateFromProps === 'undefined') {
|
452
|
-
if (!component.base || mountAll) {
|
453
|
-
if (component.componentWillMount) component.componentWillMount();
|
454
|
-
} else if (component.componentWillReceiveProps) {
|
455
|
-
component.componentWillReceiveProps(props, context);
|
456
|
-
}
|
457
|
-
}
|
458
|
-
|
459
|
-
if (context && context !== component.context) {
|
460
|
-
if (!component.prevContext) component.prevContext = component.context;
|
461
|
-
component.context = context;
|
462
|
-
}
|
463
|
-
|
464
|
-
if (!component.prevProps) component.prevProps = component.props;
|
465
|
-
component.props = props;
|
466
|
-
|
467
|
-
component._disable = false;
|
468
|
-
|
469
|
-
if (renderMode !== 0) {
|
470
|
-
if (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {
|
471
|
-
renderComponent(component, 1, mountAll);
|
472
|
-
} else {
|
473
|
-
enqueueRender(component);
|
474
|
-
}
|
475
|
-
}
|
476
|
-
|
477
|
-
applyRef(component.__ref, component);
|
478
|
-
}
|
479
|
-
|
480
|
-
function renderComponent(component, renderMode, mountAll, isChild) {
|
481
|
-
if (component._disable) return;
|
482
|
-
|
483
|
-
var props = component.props,
|
484
|
-
state = component.state,
|
485
|
-
context = component.context,
|
486
|
-
previousProps = component.prevProps || props,
|
487
|
-
previousState = component.prevState || state,
|
488
|
-
previousContext = component.prevContext || context,
|
489
|
-
isUpdate = component.base,
|
490
|
-
nextBase = component.nextBase,
|
491
|
-
initialBase = isUpdate || nextBase,
|
492
|
-
initialChildComponent = component._component,
|
493
|
-
skip = false,
|
494
|
-
snapshot = previousContext,
|
495
|
-
rendered,
|
496
|
-
inst,
|
497
|
-
cbase;
|
498
|
-
|
499
|
-
if (component.constructor.getDerivedStateFromProps) {
|
500
|
-
state = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));
|
501
|
-
component.state = state;
|
502
|
-
}
|
503
|
-
|
504
|
-
if (isUpdate) {
|
505
|
-
component.props = previousProps;
|
506
|
-
component.state = previousState;
|
507
|
-
component.context = previousContext;
|
508
|
-
if (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {
|
509
|
-
skip = true;
|
510
|
-
} else if (component.componentWillUpdate) {
|
511
|
-
component.componentWillUpdate(props, state, context);
|
512
|
-
}
|
513
|
-
component.props = props;
|
514
|
-
component.state = state;
|
515
|
-
component.context = context;
|
516
|
-
}
|
517
|
-
|
518
|
-
component.prevProps = component.prevState = component.prevContext = component.nextBase = null;
|
519
|
-
component._dirty = false;
|
520
|
-
|
521
|
-
if (!skip) {
|
522
|
-
rendered = component.render(props, state, context);
|
523
|
-
|
524
|
-
if (component.getChildContext) {
|
525
|
-
context = extend(extend({}, context), component.getChildContext());
|
526
|
-
}
|
527
|
-
|
528
|
-
if (isUpdate && component.getSnapshotBeforeUpdate) {
|
529
|
-
snapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);
|
530
|
-
}
|
531
|
-
|
532
|
-
var childComponent = rendered && rendered.nodeName,
|
533
|
-
toUnmount,
|
534
|
-
base;
|
535
|
-
|
536
|
-
if (typeof childComponent === 'function') {
|
537
|
-
|
538
|
-
var childProps = getNodeProps(rendered);
|
539
|
-
inst = initialChildComponent;
|
540
|
-
|
541
|
-
if (inst && inst.constructor === childComponent && childProps.key == inst.__key) {
|
542
|
-
setComponentProps(inst, childProps, 1, context, false);
|
543
|
-
} else {
|
544
|
-
toUnmount = inst;
|
545
|
-
|
546
|
-
component._component = inst = createComponent(childComponent, childProps, context);
|
547
|
-
inst.nextBase = inst.nextBase || nextBase;
|
548
|
-
inst._parentComponent = component;
|
549
|
-
setComponentProps(inst, childProps, 0, context, false);
|
550
|
-
renderComponent(inst, 1, mountAll, true);
|
551
|
-
}
|
552
|
-
|
553
|
-
base = inst.base;
|
554
|
-
} else {
|
555
|
-
cbase = initialBase;
|
556
|
-
|
557
|
-
toUnmount = initialChildComponent;
|
558
|
-
if (toUnmount) {
|
559
|
-
cbase = component._component = null;
|
560
|
-
}
|
561
|
-
|
562
|
-
if (initialBase || renderMode === 1) {
|
563
|
-
if (cbase) cbase._component = null;
|
564
|
-
base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);
|
565
|
-
}
|
566
|
-
}
|
567
|
-
|
568
|
-
if (initialBase && base !== initialBase && inst !== initialChildComponent) {
|
569
|
-
var baseParent = initialBase.parentNode;
|
570
|
-
if (baseParent && base !== baseParent) {
|
571
|
-
baseParent.replaceChild(base, initialBase);
|
572
|
-
|
573
|
-
if (!toUnmount) {
|
574
|
-
initialBase._component = null;
|
575
|
-
recollectNodeTree(initialBase, false);
|
576
|
-
}
|
577
|
-
}
|
578
|
-
}
|
579
|
-
|
580
|
-
if (toUnmount) {
|
581
|
-
unmountComponent(toUnmount);
|
582
|
-
}
|
583
|
-
|
584
|
-
component.base = base;
|
585
|
-
if (base && !isChild) {
|
586
|
-
var componentRef = component,
|
587
|
-
t = component;
|
588
|
-
while (t = t._parentComponent) {
|
589
|
-
(componentRef = t).base = base;
|
590
|
-
}
|
591
|
-
base._component = componentRef;
|
592
|
-
base._componentConstructor = componentRef.constructor;
|
593
|
-
}
|
594
|
-
}
|
595
|
-
|
596
|
-
if (!isUpdate || mountAll) {
|
597
|
-
mounts.push(component);
|
598
|
-
} else if (!skip) {
|
599
|
-
|
600
|
-
if (component.componentDidUpdate) {
|
601
|
-
component.componentDidUpdate(previousProps, previousState, snapshot);
|
602
|
-
}
|
603
|
-
if (options.afterUpdate) options.afterUpdate(component);
|
604
|
-
}
|
605
|
-
|
606
|
-
while (component._renderCallbacks.length) {
|
607
|
-
component._renderCallbacks.pop().call(component);
|
608
|
-
}if (!diffLevel && !isChild) flushMounts();
|
609
|
-
}
|
610
|
-
|
611
|
-
function buildComponentFromVNode(dom, vnode, context, mountAll) {
|
612
|
-
var c = dom && dom._component,
|
613
|
-
originalComponent = c,
|
614
|
-
oldDom = dom,
|
615
|
-
isDirectOwner = c && dom._componentConstructor === vnode.nodeName,
|
616
|
-
isOwner = isDirectOwner,
|
617
|
-
props = getNodeProps(vnode);
|
618
|
-
while (c && !isOwner && (c = c._parentComponent)) {
|
619
|
-
isOwner = c.constructor === vnode.nodeName;
|
620
|
-
}
|
621
|
-
|
622
|
-
if (c && isOwner && (!mountAll || c._component)) {
|
623
|
-
setComponentProps(c, props, 3, context, mountAll);
|
624
|
-
dom = c.base;
|
625
|
-
} else {
|
626
|
-
if (originalComponent && !isDirectOwner) {
|
627
|
-
unmountComponent(originalComponent);
|
628
|
-
dom = oldDom = null;
|
629
|
-
}
|
630
|
-
|
631
|
-
c = createComponent(vnode.nodeName, props, context);
|
632
|
-
if (dom && !c.nextBase) {
|
633
|
-
c.nextBase = dom;
|
634
|
-
|
635
|
-
oldDom = null;
|
636
|
-
}
|
637
|
-
setComponentProps(c, props, 1, context, mountAll);
|
638
|
-
dom = c.base;
|
639
|
-
|
640
|
-
if (oldDom && dom !== oldDom) {
|
641
|
-
oldDom._component = null;
|
642
|
-
recollectNodeTree(oldDom, false);
|
643
|
-
}
|
644
|
-
}
|
645
|
-
|
646
|
-
return dom;
|
647
|
-
}
|
648
|
-
|
649
|
-
function unmountComponent(component) {
|
650
|
-
if (options.beforeUnmount) options.beforeUnmount(component);
|
651
|
-
|
652
|
-
var base = component.base;
|
653
|
-
|
654
|
-
component._disable = true;
|
655
|
-
|
656
|
-
if (component.componentWillUnmount) component.componentWillUnmount();
|
657
|
-
|
658
|
-
component.base = null;
|
659
|
-
|
660
|
-
var inner = component._component;
|
661
|
-
if (inner) {
|
662
|
-
unmountComponent(inner);
|
663
|
-
} else if (base) {
|
664
|
-
if (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);
|
665
|
-
|
666
|
-
component.nextBase = base;
|
667
|
-
|
668
|
-
removeNode(base);
|
669
|
-
recyclerComponents.push(component);
|
670
|
-
|
671
|
-
removeChildren(base);
|
672
|
-
}
|
673
|
-
|
674
|
-
applyRef(component.__ref, null);
|
675
|
-
}
|
676
|
-
|
677
|
-
function Component(props, context) {
|
678
|
-
this._dirty = true;
|
679
|
-
|
680
|
-
this.context = context;
|
681
|
-
|
682
|
-
this.props = props;
|
683
|
-
|
684
|
-
this.state = this.state || {};
|
685
|
-
|
686
|
-
this._renderCallbacks = [];
|
687
|
-
}
|
688
|
-
|
689
|
-
extend(Component.prototype, {
|
690
|
-
setState: function setState(state, callback) {
|
691
|
-
if (!this.prevState) this.prevState = this.state;
|
692
|
-
this.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);
|
693
|
-
if (callback) this._renderCallbacks.push(callback);
|
694
|
-
enqueueRender(this);
|
695
|
-
},
|
696
|
-
forceUpdate: function forceUpdate(callback) {
|
697
|
-
if (callback) this._renderCallbacks.push(callback);
|
698
|
-
renderComponent(this, 2);
|
699
|
-
},
|
700
|
-
render: function render() {}
|
701
|
-
});
|
702
|
-
|
703
|
-
function render(vnode, parent, merge) {
|
704
|
-
return diff(merge, vnode, {}, false, parent, false);
|
705
|
-
}
|
706
|
-
|
707
|
-
function createRef() {
|
708
|
-
return {};
|
709
|
-
}
|
710
|
-
|
711
|
-
var preact = {
|
712
|
-
h: h,
|
713
|
-
createElement: h,
|
714
|
-
cloneElement: cloneElement,
|
715
|
-
createRef: createRef,
|
716
|
-
Component: Component,
|
717
|
-
render: render,
|
718
|
-
rerender: rerender,
|
719
|
-
options: options
|
720
|
-
};
|
721
|
-
|
722
|
-
export default preact;
|
723
|
-
export { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };
|
724
|
-
//# sourceMappingURL=preact.mjs.map
|