diff --git a/.browserslistrc b/.browserslistrc index 04395b913c9c..968ff45a7552 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1,9 +1,14 @@ [production] -last 2 Firefox versions -last 2 Chrome versions -last 2 Safari versions -> 0.25% -not ie 11 +Firefox > 0 and last 2 years and > 0.01% +Chrome > 0 and last 2 years and > 0.01% +Safari > 0 and last 2 years and > 0.01% +Edge > 0 and last 1 years and > 0.01% +Opera > 0 and last 2 years and > 0.01% +> 0.2% +not op_mini all +not and_uc < 100 +not android < 100 +not dead [dev] last 1 chrome versions diff --git a/.eslintignore b/.eslintignore index c516d7511b78..6ea478bc2bf7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,6 +3,7 @@ /.chromium /build /built_assets +/bwc_tmp /config/apm.dev.js /data /html_docs diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9346def6aafd..a90e3c4ac223 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @ananzh @kavilla @seanneumann @AMoo-Miki @ashwin-pc @joshuarrrr @abbyhu2000 @zengyan-amazon @kristenTian @zhongnansu @manasvinibs @ZilongX @Flyingliuhub +* @ananzh @kavilla @seanneumann @AMoo-Miki @ashwin-pc @joshuarrrr @abbyhu2000 @zengyan-amazon @kristenTian @zhongnansu @manasvinibs @ZilongX @Flyingliuhub @BSFishy diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 0ba694cbf213..c8dfef417daa 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -34,8 +34,10 @@ jobs: installation_id: 22958780 - name: Backport - uses: VachaShah/backport@v2.1.0 + uses: VachaShah/backport@v2.2.0 with: github_token: ${{ steps.github_app_token.outputs.token }} head_template: backport/backport-<%= number %>-to-<%= base %> files_to_skip: "CHANGELOG.md" + labels_template: "<%= JSON.stringify([...labels, 'autocut']) %>" + failure_labels: "failed backport" diff --git a/.github/workflows/build_and_test_workflow.yml b/.github/workflows/build_and_test_workflow.yml index 27fbbb2c4e63..82da6e3c092d 100644 --- a/.github/workflows/build_and_test_workflow.yml +++ b/.github/workflows/build_and_test_workflow.yml @@ -29,11 +29,12 @@ env: jobs: build-lint-test: - name: Build and Verify on ${{ matrix.name }} + name: Build and Verify on ${{ matrix.name }} (ciGroup${{ matrix.group }}) strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] + group: [1, 2, 3, 4] include: - os: ubuntu-latest name: Linux @@ -72,14 +73,9 @@ jobs: if: matrix.os != 'windows-latest' run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV - - name: Configure Yarn Cache (Windows) - if: matrix.os == 'windows-latest' - run: | - echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV - echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" - - name: Initialize Yarn Cache uses: actions/cache@v3 + if: matrix.os != 'windows-latest' with: path: ${{ env.YARN_CACHE_LOCATION }} key: yarn-${{ hashFiles('**/yarn.lock') }} @@ -95,18 +91,24 @@ jobs: run: yarn osd bootstrap || yarn osd bootstrap - name: Run linter + # ciGroup 1 of unit-tests is shorter and Linux is faster + if: matrix.group == 1 && matrix.os == 'ubuntu-latest' id: linter run: yarn lint - name: Validate NOTICE file + # ciGroup 1 of unit-tests is shorter and Linux is faster + if: matrix.group == 1 && matrix.os == 'ubuntu-latest' id: notice-validate run: yarn notice:validate - - name: Run unit tests with coverage + - name: Run unit tests group ${{ matrix.group }} with coverage id: unit-tests - run: yarn test:jest:ci:coverage + run: yarn test:jest:ci:coverage --ci-group=${{ matrix.group }} - name: Run mocha tests with coverage + # ciGroup 1 of unit-tests is shorter + if: matrix.group == 1 id: mocha-tests run: yarn test:mocha:coverage @@ -115,9 +117,11 @@ jobs: uses: codecov/codecov-action@v3 with: directory: ./target/opensearch-dashboards-coverage - flags: ${{ matrix.name }} + flags: ${{ matrix.name }}_${{ matrix.group }} - name: Run integration tests + # ciGroup 1 of unit-tests is shorter + if: matrix.group == 1 id: integration-tests run: yarn test:jest_integration:ci @@ -168,14 +172,9 @@ jobs: if: matrix.os != 'windows-latest' run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV - - name: Configure Yarn Cache (Windows) - if: matrix.os == 'windows-latest' - run: | - echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV - echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" - - name: Initialize Yarn Cache uses: actions/cache@v3 + if: matrix.os != 'windows-latest' with: path: ${{ env.YARN_CACHE_LOCATION }} key: yarn-${{ hashFiles('**/yarn.lock') }} @@ -265,14 +264,9 @@ jobs: if: matrix.os != 'windows-latest' run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV - - name: Configure Yarn Cache (Windows) - if: matrix.os == 'windows-latest' - run: | - echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV - echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" - - name: Initialize Yarn Cache uses: actions/cache@v3 + if: matrix.os != 'windows-latest' with: path: ${{ env.YARN_CACHE_LOCATION }} key: yarn-${{ hashFiles('**/yarn.lock') }} @@ -324,7 +318,7 @@ jobs: working-directory: ./artifacts strategy: matrix: - version: [osd-2.0.0, osd-2.1.0, osd-2.2.0, osd-2.3.0, osd-2.4.0, osd-2.5.0] + version: [osd-2.0.0, osd-2.1.0, osd-2.2.0, osd-2.3.0, osd-2.4.0, osd-2.5.0, osd-2.6.0, osd-2.7.0] steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.i18nrc.json b/.i18nrc.json index 64ca6528aa5e..91d3b80b80a0 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -61,11 +61,17 @@ "visTypeXy": "src/plugins/vis_type_xy", "visualizations": "src/plugins/visualizations", "visualize": "src/plugins/visualize", - "apmOss": "src/plugins/apm_oss", "usageCollection": "src/plugins/usage_collection" }, "exclude": [ - "src/legacy/ui/ui_render/ui_render_mixin.js" + "src/legacy/ui/ui_render/ui_render_mixin.js", + "src/plugins/home/public/application/components/tutorial", + "src/plugins/home/server/tutorials", + "src/core/server/rendering/views/template.tsx", + "src/plugins/data/public/search/errors/timeout_error.tsx", + "src/plugins/home/public/application/components/welcome.tsx", + "src/plugins/vis_type_timeline/server/series_functions/graphite.js", + "src/plugins/vis_type_timeseries/public/application/components/aggs/serial_diff.js" ], "translations": [] } diff --git a/.lycheeexclude b/.lycheeexclude index 35ae861e8f91..a9d1f1018022 100644 --- a/.lycheeexclude +++ b/.lycheeexclude @@ -119,5 +119,7 @@ http://www.creedthoughts.gov https://media-for-the-masses.theacademyofperformingartsandscience.org/ https://yarnpkg.com/latest.msi https://forum.opensearch.org/ -https://facebook.github.io/jest/ -https://facebook.github.io/jest/docs/cli.html +https://facebook.github.io/jest/* +http://helpmenow.com/problem2 +https://sass-lang.com/* +http://api.jquery.com/* diff --git a/.stylelintrc.yml b/.stylelintrc.yml index 8a70ee1dd008..ad81fc065f7d 100644 --- a/.stylelintrc.yml +++ b/.stylelintrc.yml @@ -1,5 +1,6 @@ extends: - stylelint-config-standard-scss + - '@osd/stylelint-config' rules: # while we still use node-sass, only legacy rgb() notation is allowed color-function-notation: "legacy" diff --git a/CHANGELOG.md b/CHANGELOG.md index ecded257ee29..8cfc02244835 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,18 +13,24 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [CVE-2022-37599] Bump loader-utils from `2.0.3` to `2.0.4` ([#3031](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3031)). Backwards-compatible fixes included in v2.6.0 and v1.3.7 releases. - [CVE-2022-37603] Bump loader-utils from `2.0.3` to `2.0.4` ([#3031](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3031)). Backwards-compatible fixes included in v2.6.0 and v1.3.7 releases. - [WS-2021-0638] Bump mocha from `7.2.0` to `10.1.0` ([#2711](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2711)) -- Bump `joi` to v14 to avoid the possibility of prototype poisoning in a nested dependency ([#3952](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3952)) +- [CVE-2023-26115] Bump `word-wrap` from `1.2.3` to `1.2.4` ([#4589](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4589)) +- Bump `node-sass` to a version that uses a newer `libsass` ([#4649](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4649)) ### 📈 Features/Enhancements -- [Multiple DataSource] Add support for SigV4 authentication ([#3058](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3058)). Backwards-compatible feature included in v2.6.0 release. -- Add plugin manifest config to define OpenSearch plugin dependency and verify if it is installed on the cluster ([#3116](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3116)) -- Replace re2 with RegExp in timeline and add unit tests ([#3908](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3908)) +- Enable theme-switching via Advanced Settings to preview the Next theme ([#4475](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4475)) +- Optimize `augment-vis` saved obj searching by adding arg to saved obj client ([#4595](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4595)) +- Add resource ID filtering in fetch `augment-vis` obj queries ([#4608](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4608)) +- Reduce the amount of comments in compiled CSS ([#4648](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4648)) +- [Discover] Update styles to compatible with OUI `next` theme ([#4644](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4644)) ### 🐛 Bug Fixes - [Chore] Update deprecated url methods (url.parse(), url.format()) ([#2910](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2910)) - Cleanup unused url ([#3847](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3847)) +- Fix Node.js download link ([#4556](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4556)) +- [TSVB, Dashboards] Fix inconsistent dark mode code editor themes ([#4609](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4609)) +- [Legacy Maps] Fix dark mode style overrides ([#4658](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4658)) ### 🚞 Infrastructure @@ -35,26 +41,115 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### 📝 Documentation - [Doc] Add COMMUNICATIONS.md with info about Slack, forum, office hours ([#3837](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3837)) -- [Saved Object Service] Adds design doc for new Saved Object Service Interface for Custom Repository [#3954](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3954) +- Add plugin development section in DEVELOPER_GUIDE.md ([#3989](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3989)) +- [Vis Augmenter] Add documentation to `vis_augmenter` plugin ([#4527](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4527)) ### 🛠 Maintenance - Removes `minimatch` manual resolution ([#3019](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3019)) - Upgrade `vega-lite` dependency from `4.17.0` to `^5.6.0` ([#3076](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3076)). Backwards-compatible version included in v2.5.0 release. - Bump `js-yaml` from `3.14.0` to `4.1.0` ([#3770](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3770)) -- Adding @ZilongX and @Flyingliuhub as maintainers. ([#4137](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4137)) -- Add new MAINTAINERS to CODEOWNERS file. ([#4199](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4199)) +- Update webpack environment targets ([#4649](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4649)) ### 🪛 Refactoring - [Console] Remove unused ul element and its custom styling ([#3993](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3993)) - Fix EUI/OUI type errors ([#3798](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3798)) - Remove unused Sass in `tile_map` plugin ([#4110](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4110)) +- [Maps Legacy] Removed KUI usage in `maps_legacy` plugin([#3998](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3998)) +- [Markdown] Replace custom CSS styles and HTML markup with OUI components ([#4390](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4390)) +- [Vis Colors] [VisLib] Update legend colors to use OUI color palette ([#4365](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4365)) +- [Vis colors] Update legacy mapped colors in charts plugin to use `ouiPaletteColorBlind()`, Update default color in legacy visualizations to use `ouiPaletteColorBlind()[0]` ([#4398](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4398)) +- [Saved Objects Management] Add new or remove extra tags and styles ([#4069](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4069)) +- [Console] Migrate `/lib/autocomplete/` module to TypeScript ([#4148](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4148)) +- [Console] Migrate `/lib/!autocomplete/` module to TypeScript ([#4150](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4150)) +- [Dashboard] Restructure the `Dashboard` plugin folder to be more cohesive with the project ([#4575](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4575)) + +### 🔩 Tests + +## [2.9.0 - 2023-07-24](https://github.com/opensearch-project/OpenSearch-Dashboards/releases/tag/2.9.0) + +### 🛡 Security + +- Bump `joi` to v14 to avoid the possibility of prototype poisoning in a nested dependency ([#3952](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3952)) +- [CVE-2022-25883] Resolve `semver` to `7.5.3` and remove unused package ([#4411](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4411)) +- Bump tough-cookie from 4.0.0 to 4.1.3 ([#4531](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4531)) + +### 📈 Features/Enhancements + +- Add plugin manifest config to define OpenSearch plugin dependency and verify if it is installed on the cluster ([#3116](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3116)) +- Replace re2 with RegExp in timeline and add unit tests ([#3908](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3908)) +- Hide any output from use_node checking for Node compatibility ([#4237](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4237)) +- Add category option within groups for context menus ([#4144](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4144)) +- [Saved Object Service] Add Repository Factory Provider ([#4149](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4149)) +- [Sample Data] Add visual consistency dashboard to sample logs data ([#4339](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4339), [#4619](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4619)) +- [@osd/pm] Fix `file:`-linked dependencies' resolution to improve ability to test with local packages ([#4342](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4342)) +- [Multiple DataSource] Backend support for adding sample data ([#4268](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4268)) +- Add configurable defaults and overrides to uiSettings ([#4344](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4344)) +- Update header logo selection logic to match the header's theme ([#4383](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4383)) +- Introduce new fonts for the Next theme ([#4381](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4381)) +- Bump OUI to `1.1.2` to make `anomalyDetection` icon available ([#4408](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4408)) +- Add `color-scheme` to the root styling ([#4477](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4477)) +- [Multiple DataSource] Frontend support for adding sample data ([#4412](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4412)) +- Enable plugins to augment visualizations with additional data and context ([#4361](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4361)) +- Dashboard De-Angularization ([#4502](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4502)) +- New management overview page and rename stack management to dashboard management ([#4287](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4287)) +- [Vis Augmenter] Update base vis height in view events flyout ([#4535](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4535)) +- [Dashboard De-Angular] Add more unit tests for utils folder ([#4641](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4641)) + +### 🐛 Bug Fixes + +- [Chore] Update deprecated url methods (url.parse(), url.format()) ([#2910](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2910)) +- Cleanup unused url ([#3847](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3847)) +- Fix `i18n` generation scripts ([#4252](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4252)) +- [Saved Objects Management] Fix relationships header overflow ([#4070](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4070)) +- Update main menu to display 'Dashboards' for consistency ([#4453](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4453)) +- [Multiple DataSource] Retain the original sample data API ([#4526](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4526)) +- Remove `lmdb-store` to fix backport issue ([#4266](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4266)) + +### 🚞 Infrastructure + +- Upgrade the backport workflow ([#4343](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4343)) +- [Lint] Add custom stylelint rules and config to prevent unintended style overrides ([#4290](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4290)) +- [Lint] Add stylelint rule to define properties that are restricted from being used ([#4374](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4374)) +- [Lint] Add typing to Stylelint rules ([#4392](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4392)) +- [CI] Split build and verify into parallel jobs ([#4467](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4467)) + +### 📝 Documentation + +- [Saved Object Service] Adds design doc for new Saved Object Service Interface for Custom Repository [#3954](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3954) + +### 🛠 Maintenance + +- Adding @ZilongX and @Flyingliuhub as maintainers. ([#4137](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4137)) +- Add new MAINTAINERS to CODEOWNERS file. ([#4199](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4199)) +- Adding @BSFishy as maintainer. ([#4469](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4469)) + +### 🪛 Refactoring + - [Table Visualization] Remove custom styling for text-align:center in favor of OUI utility class. ([#4164](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4164)) +- [Table Visualization] Replace div containers with OuiFlex components ([#4272](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4272)) +- Migrate from legacy elasticsearch client to opensearch-js client in `osd-opensearch-archiver` package([#4142](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4142)) +- Replace the use of `bluebird` in `saved_objects` plugin ([#4026](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4026)) +- Relocate tutorials imagery into `src/plugins/home/public/assets/tutorials/logos` ([#4382](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4382)) +- [VisBuilder] Use OUI icon ([#4446](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4446)) +- [Vis Colors] [Region Maps] Replace hardcode color to OUI color in `region_map` plugin ([#4299](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4299)) +- [Vis Colors] Replace color maps with OUI color palettes ([#4293](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4293)) +- [Vis Colors] [Maps] Replace hardcoded color to OUI color in `maps_legacy` plugin ([#4294](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4294)) +- [Vis Colors] [TSVB] Update default color in `vis_type_timeseries` to use `ouiPaletteColorBlind()[0]`([#4363](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4363)) +- [Vis Colors] [Timeline] Replace `vis_type_timeline` colors with `ouiPaletteColorBlind()` ([#4366](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4366)) +- [Vis Colors] Update legacy seed colors to use `ouiPaletteColorBlind()` ([#4348](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4348)) +- [Console] Migrate `/lib/mappings/` module to TypeScript ([#4008](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4008)) +- [Console] Migrate `/lib/autocomplete/` module to TypeScript ([#4148](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4148)) +- [Dashboard] Restructure the `Dashboard` plugin folder to be more cohesive with the project ([#4575](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4575)) +- [Chrome] Remove breadcrumb style overrrides ([#4621](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4621)) ### 🔩 Tests -## [2.8.0 - TBD](https://github.com/opensearch-project/OpenSearch-Dashboards/releases/tag/2.8.0) +- [Vis Augmenter Add UT for few fns ([#4516](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4516)) +- [BWC Tests] Add BWC tests for 2.7.0 and 2.8.0 ([#4023](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4023)) + +## [2.8.0 - 2023-06-06](https://github.com/opensearch-project/OpenSearch-Dashboards/releases/tag/2.8.0) ### Deprecations @@ -149,6 +244,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [Monaco editor] Add json worker support ([#3424](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3424)) - [Multiple DataSource] Allow create and distinguish index pattern with same name but from different datasources ([#3604](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3604)) - [Multiple DataSource] Integrate multiple datasource with dev tool console ([#3754](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3754)) +- [Navigation] Remove unused tags ([#3964](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3964)) - [Notifications] Add id to toast api for deduplication ([#3752](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3752)) - [UI] Add support for comma delimiters in the global filter bar ([#3686](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3686)) - [UI] Indicate that IE is no longer supported ([#3641](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3641)) @@ -217,6 +313,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Update caniuse to `1.0.30001460` to fix failed integration tests ([#3538](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3538)) - [Tests] Fix unit tests for `get_keystore` ([#3854](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3854)) +- [BWC Tests] Add BWC tests for 2.7.0 and 2.8.0 ([#4023](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4023)) ## [1.3.9 - 2023-04-04](https://github.com/opensearch-project/OpenSearch-Dashboards/releases/tag/1.3.9) diff --git a/COMMUNICATIONS.md b/COMMUNICATIONS.md index c1dbfc114ce7..00e2da1a58c9 100644 --- a/COMMUNICATIONS.md +++ b/COMMUNICATIONS.md @@ -36,7 +36,7 @@ While we'll always prioritize asynchronous communication, sometimes a community 1. Review a proposal or technical design for a new feature in OpenSearch Dashboards or an OpenSearch Dashboards plugin 2. Learn more about how to build and extend OpenSearch Dashboards - which APIs, plugins, resources, and services are available to speed development -3. Discuss OpenSearch Dashboard roadmap and technical initiatives +3. Discuss OpenSearch Dashboards roadmap and technical initiatives Signing up isn't required to attend - all OpenSearch Dashboards contributors or interested developers are welcome as participants. diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 3df2106e9678..ac26f4bcd8b2 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -13,6 +13,7 @@ This guide applies to all development within the OpenSearch Dashboards project a - [Next Steps](#next-steps) - [Alternative development installations](#alternative-development-installations) - [Optional - Run OpenSearch with plugins](#optional---run-opensearch-with-plugins) + - [Plugin development](#plugin-development) - [Alternative - Run OpenSearch from tarball](#alternative---run-opensearch-from-tarball) - [Configure OpenSearch Dashboards for security](#configure-opensearch-dashboards-for-security) - [Building artifacts](#building-artifacts) @@ -231,6 +232,9 @@ $ yarn opensearch snapshot --P https://repo1.maven.org/maven2/org/opensearch/plu Note - if you add the [`security` plugin](https://github.com/opensearch-project/security), you'll also need to [configure OpenSearch Dashboards for security](#configure-opensearch-dashboards-for-security). +### Plugin development +The osd-plugin-generator tool makes it easier to create a plugin for OpenSearch Dashboards. It sets up the basic structure of the project and provides scripts to build it. Refer to [osd-plugin-generator](https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/packages/osd-plugin-generator) for more details. + #### Other snapshot configuration options Additional options can be passed after `yarn opensearch snapshot` to further configure the cluster snapshot. diff --git a/MAINTAINERS.md b/MAINTAINERS.md index ae42e47b014b..1deb190bdd19 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -19,11 +19,12 @@ This document contains a list of maintainers in this repo. See [opensearch-proje | Manasvini B Suryanarayana | [manasvinibs](https://github.com/manasvinibs) | Amazon | | Tao Liu | [Flyingliuhub](https://github.com/Flyingliuhub) | Amazon | | Zilong Xia | [ZilongX](https://github.com/ZilongX) | Amazon | +| Matt Provost | [BSFishy](https://github.com/BSFishy) | Amazon | ## Emeritus -| Maintainer | GitHub ID | Affiliation | -| ------------- | --------------------------------------- | ----------- | -| Tommy Markley | [tmarkley](https://github.com/tmarkley) | Amazon | +| Maintainer | GitHub ID | Affiliation | +| ------------- | ----------------------------------------- | ----------- | +| Tommy Markley | [tmarkley](https://github.com/tmarkley) | Amazon | | Mihir Soni | [mihirsoni](https://github.com/mihirsoni) | Amazon | -| Bishoy Boktor | [boktorbb](https://github.com/boktorbb) | Amazon | +| Bishoy Boktor | [boktorbb](https://github.com/boktorbb) | Amazon | diff --git a/README.md b/README.md index 5c6c764f87f6..70bc8200f61c 100644 --- a/README.md +++ b/README.md @@ -53,4 +53,4 @@ Copyright OpenSearch Contributors. See [NOTICE](NOTICE.txt) for details. [codecov-badge]: https://codecov.io/gh/opensearch-project/OpenSearch-Dashboards/branch/main/graphs/badge.svg [codecov-link]: https://app.codecov.io/gh/opensearch-project/OpenSearch-Dashboards [link-checker-badge]: https://github.com/opensearch-project/OpenSearch-Dashboards/actions/workflows/links_checker.yml/badge.svg -[link-checker-link]: https://github.com/opensearch-project/OpenSearch-Dashboards/actions/workflows/links_checker.yml +[link-checker-link]: https://github.com/opensearch-project/OpenSearch-Dashboards/actions/workflows/links_checker.yml \ No newline at end of file diff --git a/TESTING.md b/TESTING.md index 23866aede01c..95dc9495309a 100644 --- a/TESTING.md +++ b/TESTING.md @@ -35,6 +35,8 @@ To run all the unit tests: `yarn test:jest` To run specific unit tests, pass the path to the test: `yarn test:jest [test path]` +To run specific unit test groups: +`yarn test:jest --ci-group=1 --ci-group=2` ### Integration tests To run all the integration tests: diff --git a/bwctest.sh b/bwctest.sh index 1b44d15b64cf..f85764f9f68b 100755 --- a/bwctest.sh +++ b/bwctest.sh @@ -13,7 +13,7 @@ set -e -DEFAULT_VERSIONS="osd-2.0.0,osd-2.1.0,osd-2.2.0,osd-2.3.0,osd-2.4.0,osd-2.5.0" +DEFAULT_VERSIONS="osd-2.0.0,osd-2.1.0,osd-2.2.0,osd-2.3.0,osd-2.4.0,osd-2.5.0,osd-2.6.0,osd-2.7.0" function usage() { echo "" diff --git a/config/opensearch_dashboards.yml b/config/opensearch_dashboards.yml index d7e0d390b0fc..73f31233a783 100644 --- a/config/opensearch_dashboards.yml +++ b/config/opensearch_dashboards.yml @@ -264,3 +264,7 @@ # Set the value of this setting to false to hide the help menu link to the OpenSearch Dashboards user survey # opensearchDashboards.survey.url: "https://survey.opensearch.org" + +# Set the value of this setting to true to enable plugin augmentation on Dashboard +# vis_augmenter.pluginAugmentationEnabled: true + diff --git a/cypress/integration/with-security/helpers/generate_data.js b/cypress/integration/with-security/helpers/generate_data.js index 4833a81a1398..dcd711fc7c18 100755 --- a/cypress/integration/with-security/helpers/generate_data.js +++ b/cypress/integration/with-security/helpers/generate_data.js @@ -84,6 +84,7 @@ describe('Generating BWC test data with security', () => { }); // update default expression to use `.es(*)` instead of `.opensearch(*)` for bwc cy.get('[class="view-line"]').type('.es(*)'); + cy.get('[data-test-subj="visualizeEditorRenderButton"]').click(); cy.get('[data-test-subj="visualizeSaveButton"]').click(); cy.get('[data-test-subj="savedObjectTitle"]').type('test-timeline'); cy.get('[data-test-subj="confirmSaveSavedObjectButton"]').click(); diff --git a/cypress/integration/without-security/helpers/generate_data.js b/cypress/integration/without-security/helpers/generate_data.js index 4f2962769c16..47e9c2f5f5ed 100755 --- a/cypress/integration/without-security/helpers/generate_data.js +++ b/cypress/integration/without-security/helpers/generate_data.js @@ -67,6 +67,7 @@ describe('Generating BWC test data without security', () => { }); // update default expression to use `.es(*)` instead of `.opensearch(*)` for bwc cy.get('[class="view-line"]').type('.es(*)'); + cy.get('[data-test-subj="visualizeEditorRenderButton"]').click(); cy.get('[data-test-subj="visualizeSaveButton"]').click(); cy.get('[data-test-subj="savedObjectTitle"]').type('test-timeline'); cy.get('[data-test-subj="confirmSaveSavedObjectButton"]').click(); diff --git a/cypress/test-data/without-security/osd-2.6.0.tar.gz b/cypress/test-data/without-security/osd-2.6.0.tar.gz new file mode 100644 index 000000000000..82f8ba26f05c Binary files /dev/null and b/cypress/test-data/without-security/osd-2.6.0.tar.gz differ diff --git a/cypress/test-data/without-security/osd-2.7.0.tar.gz b/cypress/test-data/without-security/osd-2.7.0.tar.gz new file mode 100644 index 000000000000..d8866f6035b8 Binary files /dev/null and b/cypress/test-data/without-security/osd-2.7.0.tar.gz differ diff --git a/examples/ui_actions_explorer/public/context_menu_examples/context_menu_examples.tsx b/examples/ui_actions_explorer/public/context_menu_examples/context_menu_examples.tsx index b01d04c1608b..1f6ba03e966b 100644 --- a/examples/ui_actions_explorer/public/context_menu_examples/context_menu_examples.tsx +++ b/examples/ui_actions_explorer/public/context_menu_examples/context_menu_examples.tsx @@ -36,6 +36,7 @@ import { PanelViewWithSharingLong } from './panel_view_with_sharing_long'; import { PanelEdit } from './panel_edit'; import { PanelEditWithDrilldowns } from './panel_edit_with_drilldowns'; import { PanelEditWithDrilldownsAndContextActions } from './panel_edit_with_drilldowns_and_context_actions'; +import { PanelGroupOptionsAndContextActions } from './panel_group_options_and_context_actions'; export const ContextMenuExamples: React.FC = () => { return ( @@ -59,7 +60,6 @@ export const ContextMenuExamples: React.FC = () => { - @@ -71,6 +71,11 @@ export const ContextMenuExamples: React.FC = () => { + + + + + ); }; diff --git a/examples/ui_actions_explorer/public/context_menu_examples/panel_group_options_and_context_actions.tsx b/examples/ui_actions_explorer/public/context_menu_examples/panel_group_options_and_context_actions.tsx new file mode 100644 index 000000000000..20dc73406c55 --- /dev/null +++ b/examples/ui_actions_explorer/public/context_menu_examples/panel_group_options_and_context_actions.tsx @@ -0,0 +1,83 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as React from 'react'; +import { EuiButton, EuiContextMenu, EuiPopover } from '@elastic/eui'; +import useAsync from 'react-use/lib/useAsync'; +import { buildContextMenuForActions, Action } from '../../../../src/plugins/ui_actions/public'; +import { sampleAction } from './util'; + +export const PanelGroupOptionsAndContextActions: React.FC = () => { + const [open, setOpen] = React.useState(false); + + const context = {}; + const trigger: any = 'TEST_TRIGGER'; + const drilldownGrouping: Action['grouping'] = [ + { + id: 'drilldowns', + getDisplayName: () => 'Uncategorized group', + getIconType: () => 'popout', + order: 20, + }, + ]; + const exampleGroup: Action['grouping'] = [ + { + id: 'example', + getDisplayName: () => 'Example group', + getIconType: () => 'cloudStormy', + order: 20, + category: 'visAug', + }, + ]; + const alertingGroup: Action['grouping'] = [ + { + id: 'alerting', + getDisplayName: () => 'Alerting', + getIconType: () => 'cloudStormy', + order: 20, + category: 'visAug', + }, + ]; + const anomaliesGroup: Action['grouping'] = [ + { + id: 'anomalies', + getDisplayName: () => 'Anomalies', + getIconType: () => 'cloudStormy', + order: 30, + category: 'visAug', + }, + ]; + const actions = [ + sampleAction('test-1', 100, 'Edit visualization', 'pencil'), + sampleAction('test-2', 99, 'Clone panel', 'partial'), + + sampleAction('test-9', 10, 'Create drilldown', 'plusInCircle', drilldownGrouping), + sampleAction('test-10', 9, 'Manage drilldowns', 'list', drilldownGrouping), + + sampleAction('test-11', 10, 'Example action', 'dashboardApp', exampleGroup), + sampleAction('test-11', 10, 'Alertin action 1', 'dashboardApp', alertingGroup), + sampleAction('test-12', 9, 'Alertin action 2', 'dashboardApp', alertingGroup), + sampleAction('test-13', 8, 'Anomalies 1', 'cloudStormy', anomaliesGroup), + sampleAction('test-14', 7, 'Anomalies 2', 'link', anomaliesGroup), + ]; + + const panels = useAsync(() => + buildContextMenuForActions({ + actions: actions.map((action) => ({ action, context, trigger })), + }) + ); + + return ( + setOpen((x) => !x)}>Grouping with categories} + isOpen={open} + panelPaddingSize="none" + anchorPosition="downLeft" + closePopover={() => setOpen(false)} + > + + + ); +}; diff --git a/package.json b/package.json index 30e6756ca108..decb8f5f37b5 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "**/unset-value": "^2.0.1", "**/jest-config": "npm:@amoo-miki/jest-config@27.5.1", "**/jest-jasmine2": "npm:@amoo-miki/jest-jasmine2@27.5.1", + "**/semver": "^7.5.3", "**/set-value": "^4.1.0", "**/xml2js": "^0.5.0", "**/yaml": "^2.2.2" @@ -121,7 +122,7 @@ "dependencies": { "@aws-crypto/client-node": "^3.1.1", "@elastic/datemath": "5.0.3", - "@elastic/eui": "npm:@opensearch-project/oui@1.1.1", + "@elastic/eui": "npm:@opensearch-project/oui@1.3.0-alpha.2", "@elastic/good": "^9.0.1-kibana3", "@elastic/numeral": "^2.5.0", "@elastic/request-crypto": "2.0.0", @@ -170,7 +171,6 @@ "dns-sync": "^0.2.1", "elastic-apm-node": "^3.43.0", "elasticsearch": "^16.7.0", - "http-aws-es": "npm:@zhongnansu/http-aws-es@6.0.1", "execa": "^4.0.2", "expiry-js": "0.1.7", "fast-deep-equal": "^3.1.1", @@ -181,6 +181,7 @@ "globby": "^11.1.0", "handlebars": "4.7.7", "hjson": "3.2.1", + "http-aws-es": "npm:@zhongnansu/http-aws-es@6.0.1", "http-proxy-agent": "^2.1.0", "https-proxy-agent": "^5.0.0", "inline-style": "^2.0.0", @@ -211,7 +212,7 @@ "require-in-the-middle": "^5.0.2", "rison-node": "1.0.2", "rxjs": "^6.5.5", - "semver": "^5.7.0", + "semver": "^7.5.3", "set-value": "^4.1.0", "source-map-support": "^0.5.19", "symbol-observable": "^1.2.0", @@ -248,6 +249,8 @@ "@osd/optimizer": "1.0.0", "@osd/plugin-generator": "1.0.0", "@osd/pm": "1.0.0", + "@osd/stylelint-config": "1.0.0", + "@osd/stylelint-plugin-stylelint": "1.0.0", "@osd/telemetry-tools": "1.0.0", "@osd/test": "1.0.0", "@osd/test-subj-selector": "0.2.1", @@ -287,6 +290,7 @@ "@types/has-ansi": "^3.0.0", "@types/history": "^4.7.3", "@types/hjson": "^2.4.2", + "@types/http-aws-es": "6.0.2", "@types/jest": "^27.4.0", "@types/joi": "^13.4.2", "@types/jquery": "^3.3.31", @@ -320,7 +324,7 @@ "@types/react-virtualized": "^9.18.7", "@types/recompose": "^0.30.6", "@types/selenium-webdriver": "^4.0.9", - "@types/semver": "^5.5.0", + "@types/semver": "^7.5.0", "@types/sinon": "^7.0.13", "@types/strip-ansi": "^5.2.1", "@types/styled-components": "^5.1.19", @@ -339,7 +343,6 @@ "@types/zen-observable": "^0.8.0", "@typescript-eslint/eslint-plugin": "^3.10.0", "@typescript-eslint/parser": "^3.10.0", - "@types/http-aws-es": "6.0.2", "angular-aria": "^1.8.0", "angular-mocks": "^1.8.2", "angular-recursion": "^1.0.5", @@ -454,7 +457,7 @@ "supertest-as-promised": "^4.0.2", "tape": "^5.0.1", "topojson-client": "3.0.0", - "tough-cookie": "^4.0.0", + "tough-cookie": "^4.1.3", "tree-kill": "^1.2.2", "typescript": "4.0.2", "ui-select": "0.19.8", diff --git a/packages/osd-babel-preset/node_preset.js b/packages/osd-babel-preset/node_preset.js index 0acb1e146bdd..43915e239c38 100644 --- a/packages/osd-babel-preset/node_preset.js +++ b/packages/osd-babel-preset/node_preset.js @@ -40,7 +40,7 @@ module.exports = (_, options = {}) => { // `nvm install 8 && node ./src/cli` will run OpenSearch Dashboards // in node version 8 and babel will stop transpiling async/await // because they are supported in the "current" version of node - node: 'current', + node: 14, }, // replaces `import "core-js/stable"` with a list of require statements diff --git a/packages/osd-babel-preset/package.json b/packages/osd-babel-preset/package.json index d24b959c641c..b471529bbda0 100644 --- a/packages/osd-babel-preset/package.json +++ b/packages/osd-babel-preset/package.json @@ -19,7 +19,11 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-styled-components": "^2.0.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", + "browserslist": "^4.21.10", "react-is": "^16.8.0", "styled-components": "^5.3.9" + }, + "devDependencies": { + "@types/browserslist": "^4.15.0" } } diff --git a/packages/osd-babel-preset/webpack_preset.js b/packages/osd-babel-preset/webpack_preset.js index d1ee5c3cb19a..9d0a75a042c5 100644 --- a/packages/osd-babel-preset/webpack_preset.js +++ b/packages/osd-babel-preset/webpack_preset.js @@ -28,6 +28,10 @@ * under the License. */ +const { resolve } = require('path'); +const browserlist = require('browserslist'); +const targets = browserlist.loadConfig({ path: resolve(__dirname, '../..') }); + module.exports = () => { return { presets: [ @@ -36,6 +40,7 @@ module.exports = () => { { useBuiltIns: 'entry', modules: false, + targets, // Please read the explanation for this // in node_preset.js corejs: '3.2.1', diff --git a/packages/osd-interpreter/package.json b/packages/osd-interpreter/package.json index 6d11eb3bc1ee..5667f0661e1f 100644 --- a/packages/osd-interpreter/package.json +++ b/packages/osd-interpreter/package.json @@ -27,7 +27,7 @@ "del": "^6.1.1", "getopts": "^2.2.5", "pegjs": "0.10.0", - "sass-loader": "^10.4.1", + "sass-loader": "npm:@amoo-miki/sass-loader@10.4.1-node-sass-9.0.0-libsass-3.6.5", "style-loader": "^1.1.3", "supports-color": "^7.0.0", "url-loader": "^2.2.0", diff --git a/packages/osd-opensearch-archiver/package.json b/packages/osd-opensearch-archiver/package.json index 8f88fa879525..1c036dc10c50 100644 --- a/packages/osd-opensearch-archiver/package.json +++ b/packages/osd-opensearch-archiver/package.json @@ -12,9 +12,7 @@ }, "dependencies": { "@osd/dev-utils": "1.0.0", - "elasticsearch": "^16.7.0" + "@opensearch-project/opensearch": "^2.2.0" }, - "devDependencies": { - "@types/elasticsearch": "^5.0.33" - } + "devDependencies": {} } diff --git a/packages/osd-opensearch-archiver/src/actions/empty_opensearch_dashboards_index.ts b/packages/osd-opensearch-archiver/src/actions/empty_opensearch_dashboards_index.ts index e0b23ac8088f..2f7ba1f22fd0 100644 --- a/packages/osd-opensearch-archiver/src/actions/empty_opensearch_dashboards_index.ts +++ b/packages/osd-opensearch-archiver/src/actions/empty_opensearch_dashboards_index.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog, OsdClient } from '@osd/dev-utils'; import { diff --git a/packages/osd-opensearch-archiver/src/actions/load.ts b/packages/osd-opensearch-archiver/src/actions/load.ts index f513d049dbd1..65297501264a 100644 --- a/packages/osd-opensearch-archiver/src/actions/load.ts +++ b/packages/osd-opensearch-archiver/src/actions/load.ts @@ -32,7 +32,7 @@ import { resolve } from 'path'; import { createReadStream } from 'fs'; import { Readable } from 'stream'; import { ToolingLog, OsdClient } from '@osd/dev-utils'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { createPromiseFromStreams, concatStreamProviders } from '../lib/streams'; @@ -114,7 +114,7 @@ export async function loadAction({ await client.indices.refresh({ index: '_all', - allowNoIndices: true, + allow_no_indices: true, }); // If we affected the OpenSearch Dashboards index, we need to ensure it's migrated... diff --git a/packages/osd-opensearch-archiver/src/actions/save.ts b/packages/osd-opensearch-archiver/src/actions/save.ts index 46f2103f8f51..5e5b0d310d5c 100644 --- a/packages/osd-opensearch-archiver/src/actions/save.ts +++ b/packages/osd-opensearch-archiver/src/actions/save.ts @@ -31,7 +31,7 @@ import { resolve } from 'path'; import { createWriteStream, mkdirSync } from 'fs'; import { Readable, Writable } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog } from '@osd/dev-utils'; import { createListStream, createPromiseFromStreams } from '../lib/streams'; diff --git a/packages/osd-opensearch-archiver/src/actions/unload.ts b/packages/osd-opensearch-archiver/src/actions/unload.ts index 3e2bb4c8535d..6896b7878c6f 100644 --- a/packages/osd-opensearch-archiver/src/actions/unload.ts +++ b/packages/osd-opensearch-archiver/src/actions/unload.ts @@ -31,7 +31,7 @@ import { resolve } from 'path'; import { createReadStream } from 'fs'; import { Readable, Writable } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog, OsdClient } from '@osd/dev-utils'; import { createPromiseFromStreams } from '../lib/streams'; diff --git a/packages/osd-opensearch-archiver/src/cli.ts b/packages/osd-opensearch-archiver/src/cli.ts index 002e3e287587..e8606ed26645 100644 --- a/packages/osd-opensearch-archiver/src/cli.ts +++ b/packages/osd-opensearch-archiver/src/cli.ts @@ -38,8 +38,8 @@ import Path from 'path'; import readline from 'readline'; import { RunWithCommands, createFlagError } from '@osd/dev-utils'; +import { Client, ClientOptions } from '@opensearch-project/opensearch'; import { readConfigFile } from '@osd/test'; -import legacyElasticsearch from 'elasticsearch'; import { OpenSearchArchiver } from './opensearch_archiver'; @@ -56,7 +56,7 @@ export function runCli() { default: ${defaultConfigPath} --opensearch-url url for OpenSearch, prefer the --config flag --opensearch-dashboards-url url for OpenSearch Dashboards, prefer the --config flag - --dir where arechives are stored, prefer the --config flag + --dir where archives are stored, prefer the --config flag `, }, async extendContext({ log, flags, addCleanupTask }) { @@ -99,10 +99,11 @@ export function runCli() { throw createFlagError('--dir or --config must be defined'); } - const client = new legacyElasticsearch.Client({ - host: opensearchUrl, - log: flags.verbose ? 'trace' : [], - }); + const clientOptions: ClientOptions = { + node: opensearchUrl.toString(), + }; + + const client = new Client(clientOptions); addCleanupTask(() => client.close()); const opensearchArchiver = new OpenSearchArchiver({ diff --git a/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.test.ts b/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.test.ts index 462aba6c234a..603bfc278e2d 100644 --- a/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.test.ts +++ b/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.test.ts @@ -47,9 +47,11 @@ describe('opensearchArchiver: createGenerateDocRecordsStream()', () => { expect(params).to.have.property('index', 'logstash-*'); expect(params).to.have.property('size', 1000); return { - hits: { - total: 0, - hits: [], + body: { + hits: { + total: 0, + hits: [], + }, }, }; }, @@ -74,9 +76,11 @@ describe('opensearchArchiver: createGenerateDocRecordsStream()', () => { expect(params).to.have.property('scroll', '1m'); expect(params).to.have.property('rest_total_hits_as_int', true); return { - hits: { - total: 0, - hits: [], + body: { + hits: { + total: 0, + hits: [], + }, }, }; }, @@ -101,17 +105,19 @@ describe('opensearchArchiver: createGenerateDocRecordsStream()', () => { expect(params).to.have.property('index', 'index1'); await delay(200); return { - _scroll_id: 'index1ScrollId', - hits: { total: 2, hits: [{ _id: 1, _index: '.opensearch_dashboards_1' }] }, + body: { + _scroll_id: 'index1ScrollId', + hits: { total: 2, hits: [{ _id: 1, _index: '.opensearch_dashboards_1' }] }, + }, }; }, async (name, params) => { expect(name).to.be('scroll'); - expect(params).to.have.property('scrollId', 'index1ScrollId'); + expect(params).to.have.property('scroll_id', 'index1ScrollId'); expect(Date.now() - checkpoint).to.not.be.lessThan(200); checkpoint = Date.now(); await delay(200); - return { hits: { total: 2, hits: [{ _id: 2, _index: 'foo' }] } }; + return { body: { hits: { total: 2, hits: [{ _id: 2, _index: 'foo' }] } } }; }, async (name, params) => { expect(name).to.be('search'); @@ -119,7 +125,7 @@ describe('opensearchArchiver: createGenerateDocRecordsStream()', () => { expect(Date.now() - checkpoint).to.not.be.lessThan(200); checkpoint = Date.now(); await delay(200); - return { hits: { total: 0, hits: [] } }; + return { body: { hits: { total: 0, hits: [] } } }; }, ]); diff --git a/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.ts b/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.ts index 6949e2b4d4ff..9bbb99898600 100644 --- a/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.ts +++ b/packages/osd-opensearch-archiver/src/lib/docs/generate_doc_records_stream.ts @@ -29,7 +29,7 @@ */ import { Transform } from 'stream'; -import { Client, SearchParams, SearchResponse } from 'elasticsearch'; +import { Client, ApiResponse } from '@opensearch-project/opensearch'; import { Stats } from '../stats'; import { Progress } from '../progress'; @@ -53,7 +53,7 @@ export function createGenerateDocRecordsStream({ async transform(index, enc, callback) { try { let remainingHits = 0; - let resp: SearchResponse | null = null; + let resp: ApiResponse | null = null; while (!resp || remainingHits > 0) { if (!resp) { @@ -66,17 +66,17 @@ export function createGenerateDocRecordsStream({ query, }, rest_total_hits_as_int: true, // not declared on SearchParams type - } as SearchParams); - remainingHits = resp.hits.total; + }); + remainingHits = resp.body.hits.total; progress.addToTotal(remainingHits); } else { resp = await client.scroll({ - scrollId: resp._scroll_id!, + scroll_id: resp.body._scroll_id!, scroll: SCROLL_TIMEOUT, }); } - for (const hit of resp.hits.hits) { + for (const hit of resp.body?.hits.hits) { remainingHits -= 1; stats.archivedDoc(hit._index); this.push({ @@ -94,7 +94,7 @@ export function createGenerateDocRecordsStream({ }); } - progress.addToComplete(resp.hits.hits.length); + progress.addToComplete(resp.body.hits.hits.length); } callback(undefined); diff --git a/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.test.ts b/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.test.ts index 00b9e22660ca..313fdf3589ed 100644 --- a/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.test.ts +++ b/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.test.ts @@ -63,11 +63,12 @@ describe('opensearchArchiver: createIndexDocRecordsStream()', () => { const client = createStubClient([ async (name, params) => { expect(name).to.be('bulk'); - expect(params).to.eql({ - body: recordsToBulkBody(records), - requestTimeout: 120000, - }); - return { ok: true }; + expect(params).to.eql({ body: recordsToBulkBody(records) }); + return { + body: { + ok: true, + }, + }; }, ]); const stats = createStubStats(); @@ -88,19 +89,21 @@ describe('opensearchArchiver: createIndexDocRecordsStream()', () => { const client = createStubClient([ async (name, params) => { expect(name).to.be('bulk'); - expect(params).to.eql({ - body: recordsToBulkBody(records.slice(0, 1)), - requestTimeout: 120000, - }); - return { ok: true }; + expect(params).to.eql({ body: recordsToBulkBody(records.slice(0, 1)) }); + return { + body: { + ok: true, + }, + }; }, async (name, params) => { expect(name).to.be('bulk'); - expect(params).to.eql({ - body: recordsToBulkBody(records.slice(1)), - requestTimeout: 120000, - }); - return { ok: true }; + expect(params).to.eql({ body: recordsToBulkBody(records.slice(1)) }); + return { + body: { + ok: true, + }, + }; }, ]); const stats = createStubStats(); @@ -124,21 +127,23 @@ describe('opensearchArchiver: createIndexDocRecordsStream()', () => { const client = createStubClient([ async (name, params) => { expect(name).to.be('bulk'); - expect(params).to.eql({ - body: recordsToBulkBody(records.slice(0, 1)), - requestTimeout: 120000, - }); + expect(params).to.eql({ body: recordsToBulkBody(records.slice(0, 1)) }); await delay(delayMs); - return { ok: true }; + return { + body: { + ok: true, + }, + }; }, async (name, params) => { expect(name).to.be('bulk'); - expect(params).to.eql({ - body: recordsToBulkBody(records.slice(1)), - requestTimeout: 120000, - }); + expect(params).to.eql({ body: recordsToBulkBody(records.slice(1)) }); expect(Date.now() - start).to.not.be.lessThan(delayMs); - return { ok: true }; + return { + body: { + ok: true, + }, + }; }, ]); const progress = new Progress(); @@ -160,17 +165,29 @@ describe('opensearchArchiver: createIndexDocRecordsStream()', () => { async (name, params) => { expect(name).to.be('bulk'); expect(params.body.length).to.eql(1 * 2); - return { ok: true }; + return { + body: { + ok: true, + }, + }; }, async (name, params) => { expect(name).to.be('bulk'); expect(params.body.length).to.eql(299 * 2); - return { ok: true }; + return { + body: { + ok: true, + }, + }; }, async (name, params) => { expect(name).to.be('bulk'); expect(params.body.length).to.eql(1 * 2); - return { ok: true }; + return { + body: { + ok: true, + }, + }; }, ]); const progress = new Progress(); @@ -189,8 +206,8 @@ describe('opensearchArchiver: createIndexDocRecordsStream()', () => { const records = createPersonDocRecords(2); const stats = createStubStats(); const client = createStubClient([ - async () => ({ ok: true }), - async () => ({ errors: true, forcedError: true }), + async () => ({ body: { ok: true } }), + async () => ({ body: { errors: true, forcedError: true } }), ]); const progress = new Progress(); diff --git a/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.ts b/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.ts index d1ba68f7bf05..4fe7059b8464 100644 --- a/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.ts +++ b/packages/osd-opensearch-archiver/src/lib/docs/index_doc_records_stream.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { Writable } from 'stream'; import { Stats } from '../stats'; import { Progress } from '../progress'; @@ -58,8 +58,8 @@ export function createIndexDocRecordsStream( ); }); - const resp = await client.bulk({ requestTimeout: 2 * 60 * 1000, body }); - if (resp.errors) { + const resp = await client.bulk({ body }, { requestTimeout: 2 * 60 * 1000 }); + if (resp.body.errors) { throw new Error(`Failed to index all documents: ${JSON.stringify(resp, null, 2)}`); } } diff --git a/packages/osd-opensearch-archiver/src/lib/docs/test_stubs.ts b/packages/osd-opensearch-archiver/src/lib/docs/test_stubs.ts index 27b5803cc31b..5630f95ba143 100644 --- a/packages/osd-opensearch-archiver/src/lib/docs/test_stubs.ts +++ b/packages/osd-opensearch-archiver/src/lib/docs/test_stubs.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import sinon from 'sinon'; import Chance from 'chance'; import { times } from 'lodash'; diff --git a/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.test.ts b/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.test.ts index 200a6a79f965..b78f8aa51411 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.test.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.test.ts @@ -83,7 +83,6 @@ describe('opensearchArchiver: createCreateIndexStream()', () => { expect((client.indices.getAlias as sinon.SinonSpy).calledOnce).to.be.ok(); expect((client.indices.getAlias as sinon.SinonSpy).args[0][0]).to.eql({ name: 'existing-index', - ignore: [404], }); expect((client.indices.delete as sinon.SinonSpy).calledOnce).to.be.ok(); expect((client.indices.delete as sinon.SinonSpy).args[0][0]).to.eql({ diff --git a/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.ts b/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.ts index 6154f0382a96..7427f8e7ae21 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/create_index_stream.ts @@ -31,7 +31,7 @@ import { Transform, Readable } from 'stream'; import { inspect } from 'util'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog } from '@osd/dev-utils'; import { Stats } from '../stats'; diff --git a/packages/osd-opensearch-archiver/src/lib/indices/delete_index.ts b/packages/osd-opensearch-archiver/src/lib/indices/delete_index.ts index ee8fe10d8d0b..93c8f4fdd039 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/delete_index.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/delete_index.ts @@ -29,7 +29,7 @@ */ import { get } from 'lodash'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog } from '@osd/dev-utils'; import { Stats } from '../stats'; @@ -46,8 +46,8 @@ export async function deleteIndex(options: { const { client, stats, index, log, retryIfSnapshottingCount = 10 } = options; const getIndicesToDelete = async () => { - const aliasInfo = await client.indices.getAlias({ name: index, ignore: [404] }); - return aliasInfo.status === 404 ? [index] : Object.keys(aliasInfo); + const { body, statusCode } = await client.indices.getAlias({ name: index }, { ignore: [404] }); + return statusCode === 404 ? [index] : Object.keys(body); }; try { @@ -92,7 +92,9 @@ export function isDeleteWhileSnapshotInProgressError(error: object) { export async function waitForSnapshotCompletion(client: Client, index: string, log: ToolingLog) { const isSnapshotPending = async (repository: string, snapshot: string) => { const { - snapshots: [status], + body: { + snapshots: [status], + }, } = await client.snapshot.status({ repository, snapshot, @@ -103,7 +105,9 @@ export async function waitForSnapshotCompletion(client: Client, index: string, l }; const getInProgressSnapshots = async (repository: string) => { - const { snapshots: inProgressSnapshots } = await client.snapshot.get({ + const { + body: { snapshots: inProgressSnapshots }, + } = await client.snapshot.get({ repository, snapshot: '_current', }); @@ -112,7 +116,7 @@ export async function waitForSnapshotCompletion(client: Client, index: string, l for (const repository of Object.keys(await client.snapshot.getRepository({} as any))) { const allInProgress = await getInProgressSnapshots(repository); - const found = allInProgress.find((s: any) => s.indices.includes(index)); + const found = allInProgress?.find((s: any) => s.indices.includes(index)); if (!found) { continue; diff --git a/packages/osd-opensearch-archiver/src/lib/indices/delete_index_stream.ts b/packages/osd-opensearch-archiver/src/lib/indices/delete_index_stream.ts index b728aa35757b..fe22f31e15da 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/delete_index_stream.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/delete_index_stream.ts @@ -29,7 +29,7 @@ */ import { Transform } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog } from '@osd/dev-utils'; import { Stats } from '../stats'; diff --git a/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.test.ts b/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.test.ts index a961cca3550e..8d0b4087ea40 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.test.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.test.ts @@ -67,8 +67,8 @@ describe('opensearchArchiver: createGenerateIndexRecordsStream()', () => { ]); const params = (client.indices.get as sinon.SinonSpy).args[0][0]; - expect(params).to.have.property('filterPath'); - const filters: string[] = params.filterPath; + expect(params).to.have.property('filter_path'); + const filters: string[] = params.filter_path; expect(filters.some((path) => path.includes('index.creation_date'))).to.be(true); expect(filters.some((path) => path.includes('index.uuid'))).to.be(true); expect(filters.some((path) => path.includes('index.version'))).to.be(true); diff --git a/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.ts b/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.ts index f682af3d8598..e74965657c70 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/generate_index_records_stream.ts @@ -29,7 +29,7 @@ */ import { Transform } from 'stream'; -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { Stats } from '../stats'; export function createGenerateIndexRecordsStream(client: Client, stats: Stats) { @@ -40,7 +40,7 @@ export function createGenerateIndexRecordsStream(client: Client, stats: Stats) { try { const resp = (await client.indices.get({ index: indexOrAlias, - filterPath: [ + filter_path: [ '*.settings', '*.mappings', // remove settings that aren't really settings @@ -56,9 +56,10 @@ export function createGenerateIndexRecordsStream(client: Client, stats: Stats) { })) as Record; for (const [index, { settings, mappings }] of Object.entries(resp)) { + const { body, statusCode } = await client.indices.getAlias({ index }); const { [index]: { aliases }, - } = await client.indices.getAlias({ index }); + } = statusCode === 404 ? {} : body; stats.archivedIndex(index, { settings, mappings }); this.push({ diff --git a/packages/osd-opensearch-archiver/src/lib/indices/opensearch_dashboards_index.ts b/packages/osd-opensearch-archiver/src/lib/indices/opensearch_dashboards_index.ts index aff69cd2682c..9a415ebb4ee4 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/opensearch_dashboards_index.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/opensearch_dashboards_index.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client, CreateDocumentParams } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog, OsdClient } from '@osd/dev-utils'; import { Stats } from '../stats'; import { deleteIndex } from './delete_index'; @@ -52,15 +52,17 @@ export async function deleteOpenSearchDashboardsIndices({ await client.indices.putSettings({ index: indexNames, - body: { index: { blocks: { read_only: false } } }, + body: { blocks: { read_only: false } }, }); - await deleteIndex({ - client, - stats, - index: indexNames, - log, - }); + for (const indexName of indexNames) { + await deleteIndex({ + client, + stats, + index: indexName, + log, + }); + } return indexNames; } @@ -101,8 +103,8 @@ async function fetchOpenSearchDashboardsIndices(client: Client) { format: 'json', }); const isOpenSearchDashboardsIndex = (index: string) => /^\.kibana(:?_\d*)?$/.test(index); - return opensearchDashboardsIndices - .map((x: { index: string }) => x.index) + return opensearchDashboardsIndices.body + .map((x) => x.index?.toString() ?? '') .filter(isOpenSearchDashboardsIndex); } @@ -133,21 +135,19 @@ export async function cleanOpenSearchDashboardsIndices({ bool: { must_not: { ids: { - type: '_doc', values: ['space:default'], }, }, }, }, }, - ignore: [409], }); - if (resp.total !== resp.deleted) { + if (resp.body.total !== resp.body.deleted) { log.warning( 'delete by query deleted %d of %d total documents, trying again', - resp.deleted, - resp.total + resp.body.deleted, + resp.body.total ); continue; } @@ -166,9 +166,7 @@ export async function cleanOpenSearchDashboardsIndices({ export async function createDefaultSpace({ index, client }: { index: string; client: Client }) { await client.create({ index, - type: '_doc', id: 'space:default', - ignore: 409, body: { type: 'space', updated_at: new Date().toISOString(), @@ -179,5 +177,5 @@ export async function createDefaultSpace({ index, client }: { index: string; cli _reserved: true, }, }, - } as CreateDocumentParams); + }); } diff --git a/packages/osd-opensearch-archiver/src/lib/indices/test_stubs.ts b/packages/osd-opensearch-archiver/src/lib/indices/test_stubs.ts index 64b42a629cd6..bab84dd653b2 100644 --- a/packages/osd-opensearch-archiver/src/lib/indices/test_stubs.ts +++ b/packages/osd-opensearch-archiver/src/lib/indices/test_stubs.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import sinon from 'sinon'; import { ToolingLog } from '@osd/dev-utils'; import { Stats } from '../stats'; @@ -113,14 +113,13 @@ export const createStubClient = ( getAlias: sinon.spy(async ({ index, name }) => { if (index && existingIndices.indexOf(index) >= 0) { const result = indexAlias(aliases, index); - return { [index]: { aliases: result ? { [result]: {} } : {} } }; + return { body: { [index]: { aliases: result ? { [result]: {} } : {} } } }; } if (name && aliases[name]) { - return { [aliases[name]]: { aliases: { [name]: {} } } }; + return { body: { [aliases[name]]: { aliases: { [name]: {} } } } }; } - - return { status: 404 }; + return { statusCode: 404 }; }), updateAliases: sinon.spy(async ({ body }) => { body.actions.forEach( diff --git a/packages/osd-opensearch-archiver/src/opensearch_archiver.ts b/packages/osd-opensearch-archiver/src/opensearch_archiver.ts index 9e6a1246b184..bb831b05c0b0 100644 --- a/packages/osd-opensearch-archiver/src/opensearch_archiver.ts +++ b/packages/osd-opensearch-archiver/src/opensearch_archiver.ts @@ -28,7 +28,7 @@ * under the License. */ -import { Client } from 'elasticsearch'; +import { Client } from '@opensearch-project/opensearch'; import { ToolingLog, OsdClient } from '@osd/dev-utils'; import { diff --git a/packages/osd-optimizer/package.json b/packages/osd-optimizer/package.json index 27047c7b4ef5..aa9fae9b0d9f 100644 --- a/packages/osd-optimizer/package.json +++ b/packages/osd-optimizer/package.json @@ -33,7 +33,6 @@ "pirates": "^4.0.1", "postcss": "^8.4.5", "rxjs": "^6.5.5", - "node-sass": "^8.0.0", "source-map-support": "^0.5.19", "terser-webpack-plugin": "^2.1.2", "tinymath": "1.2.1", @@ -49,12 +48,14 @@ "@types/watchpack": "^1.1.6", "@types/webpack": "^4.41.31", "babel-loader": "^8.2.3", + "comment-stripper": "^0.0.4", "css-loader": "^5.2.7", "file-loader": "^6.2.0", "loader-utils": "^2.0.4", + "node-sass": "npm:@amoo-miki/node-sass@9.0.0-libsass-3.6.5", "postcss-loader": "^4.2.0", "raw-loader": "^4.0.2", - "sass-loader": "^10.4.1", + "sass-loader": "npm:@amoo-miki/sass-loader@10.4.1-node-sass-9.0.0-libsass-3.6.5", "style-loader": "^1.1.3", "url-loader": "^2.2.0", "val-loader": "^2.1.2", diff --git a/packages/osd-optimizer/postcss.config.js b/packages/osd-optimizer/postcss.config.js index 5b8b2e731989..2b1e3a8694ed 100644 --- a/packages/osd-optimizer/postcss.config.js +++ b/packages/osd-optimizer/postcss.config.js @@ -29,5 +29,7 @@ */ module.exports = { - plugins: [require('autoprefixer')()], + plugins: [ + /*require('autoprefixer')()*/ + ], }; diff --git a/packages/osd-optimizer/src/common/theme_tags.test.ts b/packages/osd-optimizer/src/common/theme_tags.test.ts index 2b34dee08628..791734e9cfb6 100644 --- a/packages/osd-optimizer/src/common/theme_tags.test.ts +++ b/packages/osd-optimizer/src/common/theme_tags.test.ts @@ -35,6 +35,8 @@ it('returns default tags when passed undefined', () => { Array [ "v7dark", "v7light", + "v8dark", + "v8light", ] `); }); diff --git a/packages/osd-optimizer/src/common/theme_tags.ts b/packages/osd-optimizer/src/common/theme_tags.ts index 3e62228ddaf9..8170c6bcab69 100644 --- a/packages/osd-optimizer/src/common/theme_tags.ts +++ b/packages/osd-optimizer/src/common/theme_tags.ts @@ -39,7 +39,7 @@ const isArrayOfStrings = (input: unknown): input is string[] => export type ThemeTags = readonly ThemeTag[]; export type ThemeTag = 'v7light' | 'v7dark' | 'v8light' | 'v8dark'; -export const DEFAULT_THEMES = tags('v7light', 'v7dark'); +export const DEFAULT_THEMES = tags('v7light', 'v7dark', 'v8light', 'v8dark'); export const ALL_THEMES = tags('v7light', 'v7dark', 'v8light', 'v8dark'); export function parseThemeTags(input?: any): ThemeTags { diff --git a/packages/osd-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap b/packages/osd-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap index 63b7e44fea07..b08793cdae2f 100644 --- a/packages/osd-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap +++ b/packages/osd-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap @@ -69,6 +69,8 @@ OptimizerConfig { "themeTags": Array [ "v7dark", "v7light", + "v8dark", + "v8light", ], "watch": false, } @@ -78,4 +80,4 @@ exports[`prepares assets for distribution: bar bundle 1`] = `"(function(modules) exports[`prepares assets for distribution: foo async bundle 1`] = `"(window[\\"foo_bundle_jsonpfunction\\"]=window[\\"foo_bundle_jsonpfunction\\"]||[]).push([[1],{3:function(module,__webpack_exports__,__webpack_require__){\\"use strict\\";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,\\"foo\\",(function(){return foo}));function foo(){}}}]);"`; -exports[`prepares assets for distribution: foo bundle 1`] = `"(function(modules){function webpackJsonpCallback(data){var chunkIds=data[0];var moreModules=data[1];var moduleId,chunkId,i=0,resolves=[];for(;i { bar.cache.refresh(); expect(bar.cache.getModuleCount()).toBe( // code + styles + style/css-loader runtimes + public path updater - 17 + 25 ); expect(bar.cache.getReferencedFiles()?.map(absolutePathSerializer.serialize).sort()) @@ -193,6 +193,8 @@ it('builds expected bundles, saves bundle counts to metadata', async () => { "/packages/osd-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/lib.ts", "/packages/osd-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v7dark.scss", "/packages/osd-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v7light.scss", + "/packages/osd-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v8dark.scss", + "/packages/osd-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v8light.scss", "/packages/osd-optimizer/target/worker/entry_point_creator.js", "/packages/osd-ui-shared-deps/public_path_module_creator.js", ] diff --git a/packages/osd-optimizer/src/optimizer/cache_keys.test.ts b/packages/osd-optimizer/src/optimizer/cache_keys.test.ts index b01228a09574..5ca5c76a566f 100644 --- a/packages/osd-optimizer/src/optimizer/cache_keys.test.ts +++ b/packages/osd-optimizer/src/optimizer/cache_keys.test.ts @@ -101,6 +101,8 @@ describe('getOptimizerCacheKey()', () => { "themeTags": Array [ "v7dark", "v7light", + "v8dark", + "v8light", ], }, } diff --git a/packages/osd-optimizer/src/worker/webpack.config.ts b/packages/osd-optimizer/src/worker/webpack.config.ts index f5272c207548..d11b14aaaee5 100644 --- a/packages/osd-optimizer/src/worker/webpack.config.ts +++ b/packages/osd-optimizer/src/worker/webpack.config.ts @@ -137,6 +137,12 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: sourceMap: !worker.dist, }, }, + { + loader: 'comment-stripper', + options: { + language: 'css', + }, + }, ], }, { @@ -164,6 +170,12 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: }, }, }, + { + loader: 'comment-stripper', + options: { + language: 'css', + }, + }, { loader: 'sass-loader', options: { diff --git a/packages/osd-pm/dist/index.js b/packages/osd-pm/dist/index.js index e43a9bfe407e..3e536751f711 100644 --- a/packages/osd-pm/dist/index.js +++ b/packages/osd-pm/dist/index.js @@ -134,15 +134,15 @@ Object.defineProperty(exports, "run", { var _cli = __webpack_require__(1); -var _production = __webpack_require__(515); +var _production = __webpack_require__(516); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); -var _project = __webpack_require__(164); +var _project = __webpack_require__(165); -var _workspaces = __webpack_require__(281); +var _workspaces = __webpack_require__(282); -var _config = __webpack_require__(282); +var _config = __webpack_require__(283); /***/ }), /* 1 */ @@ -166,9 +166,9 @@ var _tooling_log = __webpack_require__(5); var _commands = __webpack_require__(128); -var _run = __webpack_require__(510); +var _run = __webpack_require__(511); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -783,245 +783,245 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; }); -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -var __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); - -function __exportStar(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); -} - -function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -/** @deprecated */ -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -/** @deprecated */ -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -} - -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -} - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -function __classPrivateFieldGet(receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -} - -function __classPrivateFieldSet(receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -} +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} + +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +/** @deprecated */ +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +/** @deprecated */ +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +} + +function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +} /***/ }), @@ -1701,224 +1701,224 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; }); -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -function __createBinding(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -} - -function __exportStar(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; -} - -function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -}; - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); -} - -function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; -} +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +function __createBinding(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +} + +function __exportStar(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; +} + +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +}; + +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result.default = mod; + return result; +} + +function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); +} + +function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; +} /***/ }), @@ -8322,158 +8322,158 @@ convert.rgb.gray = function (rgb) { /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; + + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; /***/ }), @@ -9062,11 +9062,11 @@ exports.commands = void 0; var _bootstrap = __webpack_require__(129); -var _clean = __webpack_require__(296); +var _clean = __webpack_require__(297); -var _run = __webpack_require__(409); +var _run = __webpack_require__(410); -var _watch = __webpack_require__(410); +var _watch = __webpack_require__(411); /* * SPDX-License-Identifier: Apache-2.0 @@ -9119,19 +9119,19 @@ exports.BootstrapCommand = void 0; var _link_project_executables = __webpack_require__(130); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _parallelize = __webpack_require__(145); +var _parallelize = __webpack_require__(146); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); -var _project_checksums = __webpack_require__(283); +var _project_checksums = __webpack_require__(284); -var _bootstrap_cache_file = __webpack_require__(287); +var _bootstrap_cache_file = __webpack_require__(294); -var _yarn_lock = __webpack_require__(285); +var _yarn_lock = __webpack_require__(286); -var _validate_dependencies = __webpack_require__(288); +var _validate_dependencies = __webpack_require__(295); /* * SPDX-License-Identifier: Apache-2.0 @@ -9262,7 +9262,7 @@ var _path = __webpack_require__(4); var _fs = __webpack_require__(131); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); /* * SPDX-License-Identifier: Apache-2.0 @@ -9344,18 +9344,42 @@ async function linkProjectExecutables(projectsByName, projectGraph) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.copyDirectory = exports.chmod = void 0; +Object.defineProperty(exports, "chmod", { + enumerable: true, + get: function () { + return _promises.chmod; + } +}); +exports.copyDirectory = void 0; exports.createSymlink = createSymlink; exports.isDirectory = isDirectory; exports.isFile = isFile; exports.isSymlink = isSymlink; -exports.writeFile = exports.unlink = exports.readFile = exports.mkdirp = void 0; +exports.mkdirp = void 0; +Object.defineProperty(exports, "readFile", { + enumerable: true, + get: function () { + return _promises.readFile; + } +}); +Object.defineProperty(exports, "unlink", { + enumerable: true, + get: function () { + return _promises.unlink; + } +}); +Object.defineProperty(exports, "writeFile", { + enumerable: true, + get: function () { + return _promises.writeFile; + } +}); var _cmdShim = _interopRequireDefault(__webpack_require__(132)); -var _fs = _interopRequireDefault(__webpack_require__(134)); +var _promises = __webpack_require__(143); -var _ncp = __webpack_require__(143); +var _ncp = __webpack_require__(144); var _path = __webpack_require__(4); @@ -9392,30 +9416,19 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * specific language governing permissions and limitations * under the License. */ -const lstat = (0, _util.promisify)(_fs.default.lstat); -const readFile = (0, _util.promisify)(_fs.default.readFile); -exports.readFile = readFile; -const writeFile = (0, _util.promisify)(_fs.default.writeFile); -exports.writeFile = writeFile; -const symlink = (0, _util.promisify)(_fs.default.symlink); -const chmod = (0, _util.promisify)(_fs.default.chmod); -exports.chmod = chmod; const cmdShim = (0, _util.promisify)(_cmdShim.default); -const mkdir = (0, _util.promisify)(_fs.default.mkdir); -const mkdirp = async path => await mkdir(path, { +const mkdirp = async path => await (0, _promises.mkdir)(path, { recursive: true }); exports.mkdirp = mkdirp; -const unlink = (0, _util.promisify)(_fs.default.unlink); -exports.unlink = unlink; const copyDirectory = (0, _util.promisify)(_ncp.ncp); exports.copyDirectory = copyDirectory; async function statTest(path, block) { try { - return block(await lstat(path)); + return block(await (0, _promises.lstat)(path)); } catch (e) { if (e.code === 'ENOENT') { return false; @@ -9480,14 +9493,14 @@ async function createSymlink(src, dest, type) { async function forceCreate(src, dest, type) { try { // If something exists at `dest` we need to remove it first. - await unlink(dest); + await (0, _promises.unlink)(dest); } catch (error) { if (error.code !== 'ENOENT') { throw error; } } - await symlink(src, dest, type); + await (0, _promises.symlink)(src, dest, type); } /***/ }), @@ -10848,62 +10861,68 @@ mkdirP.sync = function sync (p, opts, made) { /* 142 */ /***/ (function(module, exports) { -exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair -exports.convertToSetCommand = convertToSetCommand -exports.convertToSetCommands = convertToSetCommands - -function convertToSetCommand(key, value) { - var line = "" - key = key || "" - key = key.trim() - value = value || "" - value = value.trim() - if(key && value && value.length > 0) { - line = "@SET " + key + "=" + replaceDollarWithPercentPair(value) + "\r\n" - } - return line -} - -function extractVariableValuePairs(declarations) { - var pairs = {} - declarations.map(function(declaration) { - var split = declaration.split("=") - pairs[split[0]]=split[1] - }) - return pairs -} - -function convertToSetCommands(variableString) { - var variableValuePairs = extractVariableValuePairs(variableString.split(" ")) - var variableDeclarationsAsBatch = "" - Object.keys(variableValuePairs).forEach(function (key) { - variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key]) - }) - return variableDeclarationsAsBatch -} - -function replaceDollarWithPercentPair(value) { - var dollarExpressions = /\$\{?([^\$@#\?\- \t{}:]+)\}?/g - var result = "" - var startIndex = 0 - value = value || "" - do { - var match = dollarExpressions.exec(value) - if(match) { - var betweenMatches = value.substring(startIndex, match.index) || "" - result += betweenMatches + "%" + match[1] + "%" - startIndex = dollarExpressions.lastIndex - } - } while (dollarExpressions.lastIndex > 0) - result += value.substr(startIndex) - return result -} +exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair +exports.convertToSetCommand = convertToSetCommand +exports.convertToSetCommands = convertToSetCommands + +function convertToSetCommand(key, value) { + var line = "" + key = key || "" + key = key.trim() + value = value || "" + value = value.trim() + if(key && value && value.length > 0) { + line = "@SET " + key + "=" + replaceDollarWithPercentPair(value) + "\r\n" + } + return line +} + +function extractVariableValuePairs(declarations) { + var pairs = {} + declarations.map(function(declaration) { + var split = declaration.split("=") + pairs[split[0]]=split[1] + }) + return pairs +} + +function convertToSetCommands(variableString) { + var variableValuePairs = extractVariableValuePairs(variableString.split(" ")) + var variableDeclarationsAsBatch = "" + Object.keys(variableValuePairs).forEach(function (key) { + variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key]) + }) + return variableDeclarationsAsBatch +} + +function replaceDollarWithPercentPair(value) { + var dollarExpressions = /\$\{?([^\$@#\?\- \t{}:]+)\}?/g + var result = "" + var startIndex = 0 + value = value || "" + do { + var match = dollarExpressions.exec(value) + if(match) { + var betweenMatches = value.substring(startIndex, match.index) || "" + result += betweenMatches + "%" + match[1] + "%" + startIndex = dollarExpressions.lastIndex + } + } while (dollarExpressions.lastIndex > 0) + result += value.substr(startIndex) + return result +} + + +/***/ }), +/* 143 */ +/***/ (function(module, exports) { +module.exports = require("fs/promises"); /***/ }), -/* 143 */ +/* 144 */ /***/ (function(module, exports, __webpack_require__) { var fs = __webpack_require__(134), @@ -11170,7 +11189,7 @@ function ncp (source, dest, options, callback) { /***/ }), -/* 144 */ +/* 145 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11220,7 +11239,7 @@ const log = new Log(); exports.log = log; /***/ }), -/* 145 */ +/* 146 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11303,7 +11322,7 @@ async function parallelize(items, fn, concurrency = 4) { } /***/ }), -/* 146 */ +/* 147 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11317,17 +11336,17 @@ exports.getProjects = getProjects; exports.includeTransitiveProjects = includeTransitiveProjects; exports.topologicallyBatchProjects = topologicallyBatchProjects; -var _glob = _interopRequireDefault(__webpack_require__(147)); +var _glob = _interopRequireDefault(__webpack_require__(148)); var _path = _interopRequireDefault(__webpack_require__(4)); var _util = __webpack_require__(112); -var _errors = __webpack_require__(163); +var _errors = __webpack_require__(164); -var _project = __webpack_require__(164); +var _project = __webpack_require__(165); -var _workspaces = __webpack_require__(281); +var _workspaces = __webpack_require__(282); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -11538,7 +11557,7 @@ function includeTransitiveProjects(subsetOfProjects, allProjects, { } /***/ }), -/* 147 */ +/* 148 */ /***/ (function(module, exports, __webpack_require__) { // Approach: @@ -11583,24 +11602,24 @@ function includeTransitiveProjects(subsetOfProjects, allProjects, { module.exports = glob -var rp = __webpack_require__(148) -var minimatch = __webpack_require__(150) +var rp = __webpack_require__(149) +var minimatch = __webpack_require__(151) var Minimatch = minimatch.Minimatch -var inherits = __webpack_require__(154) -var EE = __webpack_require__(156).EventEmitter +var inherits = __webpack_require__(155) +var EE = __webpack_require__(157).EventEmitter var path = __webpack_require__(4) var assert = __webpack_require__(140) -var isAbsolute = __webpack_require__(157) -var globSync = __webpack_require__(158) -var common = __webpack_require__(159) +var isAbsolute = __webpack_require__(158) +var globSync = __webpack_require__(159) +var common = __webpack_require__(160) var setopts = common.setopts var ownProp = common.ownProp -var inflight = __webpack_require__(160) +var inflight = __webpack_require__(161) var util = __webpack_require__(112) var childrenIgnored = common.childrenIgnored var isIgnored = common.isIgnored -var once = __webpack_require__(162) +var once = __webpack_require__(163) function glob (pattern, options, cb) { if (typeof options === 'function') cb = options, options = {} @@ -12331,7 +12350,7 @@ Glob.prototype._stat2 = function (f, abs, er, stat, cb) { /***/ }), -/* 148 */ +/* 149 */ /***/ (function(module, exports, __webpack_require__) { module.exports = realpath @@ -12347,7 +12366,7 @@ var origRealpathSync = fs.realpathSync var version = process.version var ok = /^v[0-5]\./.test(version) -var old = __webpack_require__(149) +var old = __webpack_require__(150) function newError (er) { return er && er.syscall === 'realpath' && ( @@ -12403,7 +12422,7 @@ function unmonkeypatch () { /***/ }), -/* 149 */ +/* 150 */ /***/ (function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. @@ -12712,7 +12731,7 @@ exports.realpath = function realpath(p, cache, cb) { /***/ }), -/* 150 */ +/* 151 */ /***/ (function(module, exports, __webpack_require__) { module.exports = minimatch @@ -12724,7 +12743,7 @@ var path = (function () { try { return __webpack_require__(4) } catch (e) {}}()) minimatch.sep = path.sep var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = __webpack_require__(151) +var expand = __webpack_require__(152) var plTypes = { '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, @@ -13665,11 +13684,11 @@ function regExpEscape (s) { /***/ }), -/* 151 */ +/* 152 */ /***/ (function(module, exports, __webpack_require__) { -var concatMap = __webpack_require__(152); -var balanced = __webpack_require__(153); +var concatMap = __webpack_require__(153); +var balanced = __webpack_require__(154); module.exports = expandTop; @@ -13872,7 +13891,7 @@ function expand(str, isTop) { /***/ }), -/* 152 */ +/* 153 */ /***/ (function(module, exports) { module.exports = function (xs, fn) { @@ -13891,7 +13910,7 @@ var isArray = Array.isArray || function (xs) { /***/ }), -/* 153 */ +/* 154 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -13960,7 +13979,7 @@ function range(a, b, str) { /***/ }), -/* 154 */ +/* 155 */ /***/ (function(module, exports, __webpack_require__) { try { @@ -13970,12 +13989,12 @@ try { module.exports = util.inherits; } catch (e) { /* istanbul ignore next */ - module.exports = __webpack_require__(155); + module.exports = __webpack_require__(156); } /***/ }), -/* 155 */ +/* 156 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { @@ -14008,13 +14027,13 @@ if (typeof Object.create === 'function') { /***/ }), -/* 156 */ +/* 157 */ /***/ (function(module, exports) { module.exports = require("events"); /***/ }), -/* 157 */ +/* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14041,21 +14060,21 @@ module.exports.win32 = win32; /***/ }), -/* 158 */ +/* 159 */ /***/ (function(module, exports, __webpack_require__) { module.exports = globSync globSync.GlobSync = GlobSync -var rp = __webpack_require__(148) -var minimatch = __webpack_require__(150) +var rp = __webpack_require__(149) +var minimatch = __webpack_require__(151) var Minimatch = minimatch.Minimatch -var Glob = __webpack_require__(147).Glob +var Glob = __webpack_require__(148).Glob var util = __webpack_require__(112) var path = __webpack_require__(4) var assert = __webpack_require__(140) -var isAbsolute = __webpack_require__(157) -var common = __webpack_require__(159) +var isAbsolute = __webpack_require__(158) +var common = __webpack_require__(160) var setopts = common.setopts var ownProp = common.ownProp var childrenIgnored = common.childrenIgnored @@ -14530,7 +14549,7 @@ GlobSync.prototype._makeAbs = function (f) { /***/ }), -/* 159 */ +/* 160 */ /***/ (function(module, exports, __webpack_require__) { exports.setopts = setopts @@ -14547,8 +14566,8 @@ function ownProp (obj, field) { var fs = __webpack_require__(134) var path = __webpack_require__(4) -var minimatch = __webpack_require__(150) -var isAbsolute = __webpack_require__(157) +var minimatch = __webpack_require__(151) +var isAbsolute = __webpack_require__(158) var Minimatch = minimatch.Minimatch function alphasort (a, b) { @@ -14772,12 +14791,12 @@ function childrenIgnored (self, path) { /***/ }), -/* 160 */ +/* 161 */ /***/ (function(module, exports, __webpack_require__) { -var wrappy = __webpack_require__(161) +var wrappy = __webpack_require__(162) var reqs = Object.create(null) -var once = __webpack_require__(162) +var once = __webpack_require__(163) module.exports = wrappy(inflight) @@ -14832,7 +14851,7 @@ function slice (args) { /***/ }), -/* 161 */ +/* 162 */ /***/ (function(module, exports) { // Returns a wrapper function that returns a wrapped callback @@ -14871,10 +14890,10 @@ function wrappy (fn, cb) { /***/ }), -/* 162 */ +/* 163 */ /***/ (function(module, exports, __webpack_require__) { -var wrappy = __webpack_require__(161) +var wrappy = __webpack_require__(162) module.exports = wrappy(once) module.exports.strict = wrappy(onceStrict) @@ -14919,7 +14938,7 @@ function onceStrict (fn) { /***/ }), -/* 163 */ +/* 164 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14970,7 +14989,7 @@ class CliError extends Error { exports.CliError = CliError; /***/ }), -/* 164 */ +/* 165 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14987,13 +15006,13 @@ var _path = _interopRequireDefault(__webpack_require__(4)); var _util = __webpack_require__(112); -var _errors = __webpack_require__(163); +var _errors = __webpack_require__(164); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _package_json = __webpack_require__(165); +var _package_json = __webpack_require__(166); -var _scripts = __webpack_require__(235); +var _scripts = __webpack_require__(236); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -15221,7 +15240,7 @@ function normalizePath(path) { } /***/ }), -/* 165 */ +/* 166 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15234,9 +15253,9 @@ exports.isLinkDependency = void 0; exports.readPackageJson = readPackageJson; exports.writePackageJson = writePackageJson; -var _readPkg = _interopRequireDefault(__webpack_require__(166)); +var _readPkg = _interopRequireDefault(__webpack_require__(167)); -var _writePkg = _interopRequireDefault(__webpack_require__(223)); +var _writePkg = _interopRequireDefault(__webpack_require__(224)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -15285,7 +15304,7 @@ const isLinkDependency = depVersion => depVersion.startsWith('link:'); exports.isLinkDependency = isLinkDependency; /***/ }), -/* 166 */ +/* 167 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15293,7 +15312,7 @@ exports.isLinkDependency = isLinkDependency; const {promisify} = __webpack_require__(112); const fs = __webpack_require__(134); const path = __webpack_require__(4); -const parseJson = __webpack_require__(167); +const parseJson = __webpack_require__(168); const readFileAsync = promisify(fs.readFile); @@ -15308,7 +15327,7 @@ module.exports = async options => { const json = parseJson(await readFileAsync(filePath, 'utf8')); if (options.normalize) { - __webpack_require__(188)(json); + __webpack_require__(189)(json); } return json; @@ -15325,7 +15344,7 @@ module.exports.sync = options => { const json = parseJson(fs.readFileSync(filePath, 'utf8')); if (options.normalize) { - __webpack_require__(188)(json); + __webpack_require__(189)(json); } return json; @@ -15333,15 +15352,15 @@ module.exports.sync = options => { /***/ }), -/* 167 */ +/* 168 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const errorEx = __webpack_require__(168); -const fallback = __webpack_require__(170); -const {default: LinesAndColumns} = __webpack_require__(171); -const {codeFrameColumns} = __webpack_require__(172); +const errorEx = __webpack_require__(169); +const fallback = __webpack_require__(171); +const {default: LinesAndColumns} = __webpack_require__(172); +const {codeFrameColumns} = __webpack_require__(173); const JSONError = errorEx('JSONError', { fileName: errorEx.append('in %s'), @@ -15394,14 +15413,14 @@ module.exports = parseJson; /***/ }), -/* 168 */ +/* 169 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var isArrayish = __webpack_require__(169); +var isArrayish = __webpack_require__(170); var errorEx = function errorEx(name, properties) { if (!name || name.constructor !== String) { @@ -15542,7 +15561,7 @@ module.exports = errorEx; /***/ }), -/* 169 */ +/* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15559,7 +15578,7 @@ module.exports = function isArrayish(obj) { /***/ }), -/* 170 */ +/* 171 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15687,7 +15706,7 @@ parseJson.noExceptions = (txt, reviver) => { /***/ }), -/* 171 */ +/* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15756,7 +15775,7 @@ exports["default"] = LinesAndColumns; /***/ }), -/* 172 */ +/* 173 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15768,7 +15787,7 @@ Object.defineProperty(exports, "__esModule", { exports.codeFrameColumns = codeFrameColumns; exports.default = _default; -var _highlight = __webpack_require__(173); +var _highlight = __webpack_require__(174); let deprecationWarningShown = false; @@ -15925,7 +15944,7 @@ function _default(rawLines, lineNumber, colNumber, opts = {}) { } /***/ }), -/* 173 */ +/* 174 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15938,11 +15957,11 @@ exports.default = highlight; exports.getChalk = getChalk; exports.shouldHighlight = shouldHighlight; -var _jsTokens = __webpack_require__(174); +var _jsTokens = __webpack_require__(175); -var _helperValidatorIdentifier = __webpack_require__(175); +var _helperValidatorIdentifier = __webpack_require__(176); -var _chalk = __webpack_require__(178); +var _chalk = __webpack_require__(179); const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); @@ -16047,7 +16066,7 @@ function highlight(code, options = {}) { } /***/ }), -/* 174 */ +/* 175 */ /***/ (function(module, exports) { // Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell @@ -16076,7 +16095,7 @@ exports.matchToToken = function(match) { /***/ }), -/* 175 */ +/* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16134,12 +16153,12 @@ Object.defineProperty(exports, "isStrictReservedWord", { } }); -var _identifier = __webpack_require__(176); +var _identifier = __webpack_require__(177); -var _keyword = __webpack_require__(177); +var _keyword = __webpack_require__(178); /***/ }), -/* 176 */ +/* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16229,7 +16248,7 @@ function isIdentifierName(name) { } /***/ }), -/* 177 */ +/* 178 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16273,16 +16292,16 @@ function isKeyword(word) { } /***/ }), -/* 178 */ +/* 179 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const escapeStringRegexp = __webpack_require__(179); -const ansiStyles = __webpack_require__(180); -const stdoutColor = __webpack_require__(185).stdout; +const escapeStringRegexp = __webpack_require__(180); +const ansiStyles = __webpack_require__(181); +const stdoutColor = __webpack_require__(186).stdout; -const template = __webpack_require__(187); +const template = __webpack_require__(188); const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); @@ -16508,7 +16527,7 @@ module.exports.default = module.exports; // For TypeScript /***/ }), -/* 179 */ +/* 180 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16526,12 +16545,12 @@ module.exports = function (str) { /***/ }), -/* 180 */ +/* 181 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(module) { -const colorConvert = __webpack_require__(181); +const colorConvert = __webpack_require__(182); const wrapAnsi16 = (fn, offset) => function () { const code = fn.apply(colorConvert, arguments); @@ -16699,11 +16718,11 @@ Object.defineProperty(module, 'exports', { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(115)(module))) /***/ }), -/* 181 */ +/* 182 */ /***/ (function(module, exports, __webpack_require__) { -var conversions = __webpack_require__(182); -var route = __webpack_require__(184); +var conversions = __webpack_require__(183); +var route = __webpack_require__(185); var convert = {}; @@ -16783,11 +16802,11 @@ module.exports = convert; /***/ }), -/* 182 */ +/* 183 */ /***/ (function(module, exports, __webpack_require__) { /* MIT license */ -var cssKeywords = __webpack_require__(183); +var cssKeywords = __webpack_require__(184); // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). @@ -17657,169 +17676,169 @@ convert.rgb.gray = function (rgb) { /***/ }), -/* 183 */ +/* 184 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; + + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; /***/ }), -/* 184 */ +/* 185 */ /***/ (function(module, exports, __webpack_require__) { -var conversions = __webpack_require__(182); +var conversions = __webpack_require__(183); /* this function routes a model to all other models. @@ -17919,13 +17938,13 @@ module.exports = function (fromModel) { /***/ }), -/* 185 */ +/* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const os = __webpack_require__(121); -const hasFlag = __webpack_require__(186); +const hasFlag = __webpack_require__(187); const env = process.env; @@ -18057,7 +18076,7 @@ module.exports = { /***/ }), -/* 186 */ +/* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18072,7 +18091,7 @@ module.exports = (flag, argv) => { /***/ }), -/* 187 */ +/* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18207,15 +18226,15 @@ module.exports = (chalk, tmp) => { /***/ }), -/* 188 */ +/* 189 */ /***/ (function(module, exports, __webpack_require__) { module.exports = normalize -var fixer = __webpack_require__(189) +var fixer = __webpack_require__(190) normalize.fixer = fixer -var makeWarning = __webpack_require__(221) +var makeWarning = __webpack_require__(222) var fieldsToFix = ['name','version','description','repository','modules','scripts' ,'files','bin','man','bugs','keywords','readme','homepage','license'] @@ -18252,17 +18271,17 @@ function ucFirst (string) { /***/ }), -/* 189 */ +/* 190 */ /***/ (function(module, exports, __webpack_require__) { -var semver = __webpack_require__(190) -var validateLicense = __webpack_require__(191); -var hostedGitInfo = __webpack_require__(199) -var isBuiltinModule = __webpack_require__(203).isCore +var semver = __webpack_require__(191) +var validateLicense = __webpack_require__(192); +var hostedGitInfo = __webpack_require__(200) +var isBuiltinModule = __webpack_require__(204).isCore var depTypes = ["dependencies","devDependencies","optionalDependencies"] -var extractDescription = __webpack_require__(219) -var url = __webpack_require__(200) -var typos = __webpack_require__(220) +var extractDescription = __webpack_require__(220) +var url = __webpack_require__(201) +var typos = __webpack_require__(221) var fixer = module.exports = { // default warning function @@ -18676,7 +18695,7 @@ function bugsTypos(bugs, warn) { /***/ }), -/* 190 */ +/* 191 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -20165,11 +20184,11 @@ function coerce (version) { /***/ }), -/* 191 */ +/* 192 */ /***/ (function(module, exports, __webpack_require__) { -var parse = __webpack_require__(192); -var correct = __webpack_require__(198); +var parse = __webpack_require__(193); +var correct = __webpack_require__(199); var genericWarning = ( 'license should be ' + @@ -20257,14 +20276,14 @@ module.exports = function(argument) { /***/ }), -/* 192 */ +/* 193 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var scan = __webpack_require__(193) -var parse = __webpack_require__(197) +var scan = __webpack_require__(194) +var parse = __webpack_require__(198) module.exports = function (source) { return parse(scan(source)) @@ -20272,16 +20291,16 @@ module.exports = function (source) { /***/ }), -/* 193 */ +/* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var licenses = [] - .concat(__webpack_require__(194)) .concat(__webpack_require__(195)) -var exceptions = __webpack_require__(196) + .concat(__webpack_require__(196)) +var exceptions = __webpack_require__(197) module.exports = function (source) { var index = 0 @@ -20410,25 +20429,25 @@ module.exports = function (source) { /***/ }), -/* 194 */ +/* 195 */ /***/ (function(module) { module.exports = JSON.parse("[\"0BSD\",\"AAL\",\"ADSL\",\"AFL-1.1\",\"AFL-1.2\",\"AFL-2.0\",\"AFL-2.1\",\"AFL-3.0\",\"AGPL-1.0-only\",\"AGPL-1.0-or-later\",\"AGPL-3.0-only\",\"AGPL-3.0-or-later\",\"AMDPLPA\",\"AML\",\"AMPAS\",\"ANTLR-PD\",\"ANTLR-PD-fallback\",\"APAFML\",\"APL-1.0\",\"APSL-1.0\",\"APSL-1.1\",\"APSL-1.2\",\"APSL-2.0\",\"Abstyles\",\"Adobe-2006\",\"Adobe-Glyph\",\"Afmparse\",\"Aladdin\",\"Apache-1.0\",\"Apache-1.1\",\"Apache-2.0\",\"Artistic-1.0\",\"Artistic-1.0-Perl\",\"Artistic-1.0-cl8\",\"Artistic-2.0\",\"BSD-1-Clause\",\"BSD-2-Clause\",\"BSD-2-Clause-Patent\",\"BSD-2-Clause-Views\",\"BSD-3-Clause\",\"BSD-3-Clause-Attribution\",\"BSD-3-Clause-Clear\",\"BSD-3-Clause-LBNL\",\"BSD-3-Clause-Modification\",\"BSD-3-Clause-No-Military-License\",\"BSD-3-Clause-No-Nuclear-License\",\"BSD-3-Clause-No-Nuclear-License-2014\",\"BSD-3-Clause-No-Nuclear-Warranty\",\"BSD-3-Clause-Open-MPI\",\"BSD-4-Clause\",\"BSD-4-Clause-Shortened\",\"BSD-4-Clause-UC\",\"BSD-Protection\",\"BSD-Source-Code\",\"BSL-1.0\",\"BUSL-1.1\",\"Bahyph\",\"Barr\",\"Beerware\",\"BitTorrent-1.0\",\"BitTorrent-1.1\",\"BlueOak-1.0.0\",\"Borceux\",\"C-UDA-1.0\",\"CAL-1.0\",\"CAL-1.0-Combined-Work-Exception\",\"CATOSL-1.1\",\"CC-BY-1.0\",\"CC-BY-2.0\",\"CC-BY-2.5\",\"CC-BY-2.5-AU\",\"CC-BY-3.0\",\"CC-BY-3.0-AT\",\"CC-BY-3.0-DE\",\"CC-BY-3.0-NL\",\"CC-BY-3.0-US\",\"CC-BY-4.0\",\"CC-BY-NC-1.0\",\"CC-BY-NC-2.0\",\"CC-BY-NC-2.5\",\"CC-BY-NC-3.0\",\"CC-BY-NC-3.0-DE\",\"CC-BY-NC-4.0\",\"CC-BY-NC-ND-1.0\",\"CC-BY-NC-ND-2.0\",\"CC-BY-NC-ND-2.5\",\"CC-BY-NC-ND-3.0\",\"CC-BY-NC-ND-3.0-DE\",\"CC-BY-NC-ND-3.0-IGO\",\"CC-BY-NC-ND-4.0\",\"CC-BY-NC-SA-1.0\",\"CC-BY-NC-SA-2.0\",\"CC-BY-NC-SA-2.0-FR\",\"CC-BY-NC-SA-2.0-UK\",\"CC-BY-NC-SA-2.5\",\"CC-BY-NC-SA-3.0\",\"CC-BY-NC-SA-3.0-DE\",\"CC-BY-NC-SA-3.0-IGO\",\"CC-BY-NC-SA-4.0\",\"CC-BY-ND-1.0\",\"CC-BY-ND-2.0\",\"CC-BY-ND-2.5\",\"CC-BY-ND-3.0\",\"CC-BY-ND-3.0-DE\",\"CC-BY-ND-4.0\",\"CC-BY-SA-1.0\",\"CC-BY-SA-2.0\",\"CC-BY-SA-2.0-UK\",\"CC-BY-SA-2.1-JP\",\"CC-BY-SA-2.5\",\"CC-BY-SA-3.0\",\"CC-BY-SA-3.0-AT\",\"CC-BY-SA-3.0-DE\",\"CC-BY-SA-4.0\",\"CC-PDDC\",\"CC0-1.0\",\"CDDL-1.0\",\"CDDL-1.1\",\"CDL-1.0\",\"CDLA-Permissive-1.0\",\"CDLA-Permissive-2.0\",\"CDLA-Sharing-1.0\",\"CECILL-1.0\",\"CECILL-1.1\",\"CECILL-2.0\",\"CECILL-2.1\",\"CECILL-B\",\"CECILL-C\",\"CERN-OHL-1.1\",\"CERN-OHL-1.2\",\"CERN-OHL-P-2.0\",\"CERN-OHL-S-2.0\",\"CERN-OHL-W-2.0\",\"CNRI-Jython\",\"CNRI-Python\",\"CNRI-Python-GPL-Compatible\",\"COIL-1.0\",\"CPAL-1.0\",\"CPL-1.0\",\"CPOL-1.02\",\"CUA-OPL-1.0\",\"Caldera\",\"ClArtistic\",\"Community-Spec-1.0\",\"Condor-1.1\",\"Crossword\",\"CrystalStacker\",\"Cube\",\"D-FSL-1.0\",\"DOC\",\"DRL-1.0\",\"DSDP\",\"Dotseqn\",\"ECL-1.0\",\"ECL-2.0\",\"EFL-1.0\",\"EFL-2.0\",\"EPICS\",\"EPL-1.0\",\"EPL-2.0\",\"EUDatagrid\",\"EUPL-1.0\",\"EUPL-1.1\",\"EUPL-1.2\",\"Entessa\",\"ErlPL-1.1\",\"Eurosym\",\"FDK-AAC\",\"FSFAP\",\"FSFUL\",\"FSFULLR\",\"FTL\",\"Fair\",\"Frameworx-1.0\",\"FreeBSD-DOC\",\"FreeImage\",\"GD\",\"GFDL-1.1-invariants-only\",\"GFDL-1.1-invariants-or-later\",\"GFDL-1.1-no-invariants-only\",\"GFDL-1.1-no-invariants-or-later\",\"GFDL-1.1-only\",\"GFDL-1.1-or-later\",\"GFDL-1.2-invariants-only\",\"GFDL-1.2-invariants-or-later\",\"GFDL-1.2-no-invariants-only\",\"GFDL-1.2-no-invariants-or-later\",\"GFDL-1.2-only\",\"GFDL-1.2-or-later\",\"GFDL-1.3-invariants-only\",\"GFDL-1.3-invariants-or-later\",\"GFDL-1.3-no-invariants-only\",\"GFDL-1.3-no-invariants-or-later\",\"GFDL-1.3-only\",\"GFDL-1.3-or-later\",\"GL2PS\",\"GLWTPL\",\"GPL-1.0-only\",\"GPL-1.0-or-later\",\"GPL-2.0-only\",\"GPL-2.0-or-later\",\"GPL-3.0-only\",\"GPL-3.0-or-later\",\"Giftware\",\"Glide\",\"Glulxe\",\"HPND\",\"HPND-sell-variant\",\"HTMLTIDY\",\"HaskellReport\",\"Hippocratic-2.1\",\"IBM-pibs\",\"ICU\",\"IJG\",\"IPA\",\"IPL-1.0\",\"ISC\",\"ImageMagick\",\"Imlib2\",\"Info-ZIP\",\"Intel\",\"Intel-ACPI\",\"Interbase-1.0\",\"JPNIC\",\"JSON\",\"JasPer-2.0\",\"LAL-1.2\",\"LAL-1.3\",\"LGPL-2.0-only\",\"LGPL-2.0-or-later\",\"LGPL-2.1-only\",\"LGPL-2.1-or-later\",\"LGPL-3.0-only\",\"LGPL-3.0-or-later\",\"LGPLLR\",\"LPL-1.0\",\"LPL-1.02\",\"LPPL-1.0\",\"LPPL-1.1\",\"LPPL-1.2\",\"LPPL-1.3a\",\"LPPL-1.3c\",\"Latex2e\",\"Leptonica\",\"LiLiQ-P-1.1\",\"LiLiQ-R-1.1\",\"LiLiQ-Rplus-1.1\",\"Libpng\",\"Linux-OpenIB\",\"Linux-man-pages-copyleft\",\"MIT\",\"MIT-0\",\"MIT-CMU\",\"MIT-Modern-Variant\",\"MIT-advertising\",\"MIT-enna\",\"MIT-feh\",\"MIT-open-group\",\"MITNFA\",\"MPL-1.0\",\"MPL-1.1\",\"MPL-2.0\",\"MPL-2.0-no-copyleft-exception\",\"MS-PL\",\"MS-RL\",\"MTLL\",\"MakeIndex\",\"MirOS\",\"Motosoto\",\"MulanPSL-1.0\",\"MulanPSL-2.0\",\"Multics\",\"Mup\",\"NAIST-2003\",\"NASA-1.3\",\"NBPL-1.0\",\"NCGL-UK-2.0\",\"NCSA\",\"NGPL\",\"NIST-PD\",\"NIST-PD-fallback\",\"NLOD-1.0\",\"NLOD-2.0\",\"NLPL\",\"NOSL\",\"NPL-1.0\",\"NPL-1.1\",\"NPOSL-3.0\",\"NRL\",\"NTP\",\"NTP-0\",\"Naumen\",\"Net-SNMP\",\"NetCDF\",\"Newsletr\",\"Nokia\",\"Noweb\",\"O-UDA-1.0\",\"OCCT-PL\",\"OCLC-2.0\",\"ODC-By-1.0\",\"ODbL-1.0\",\"OFL-1.0\",\"OFL-1.0-RFN\",\"OFL-1.0-no-RFN\",\"OFL-1.1\",\"OFL-1.1-RFN\",\"OFL-1.1-no-RFN\",\"OGC-1.0\",\"OGDL-Taiwan-1.0\",\"OGL-Canada-2.0\",\"OGL-UK-1.0\",\"OGL-UK-2.0\",\"OGL-UK-3.0\",\"OGTSL\",\"OLDAP-1.1\",\"OLDAP-1.2\",\"OLDAP-1.3\",\"OLDAP-1.4\",\"OLDAP-2.0\",\"OLDAP-2.0.1\",\"OLDAP-2.1\",\"OLDAP-2.2\",\"OLDAP-2.2.1\",\"OLDAP-2.2.2\",\"OLDAP-2.3\",\"OLDAP-2.4\",\"OLDAP-2.5\",\"OLDAP-2.6\",\"OLDAP-2.7\",\"OLDAP-2.8\",\"OML\",\"OPL-1.0\",\"OPUBL-1.0\",\"OSET-PL-2.1\",\"OSL-1.0\",\"OSL-1.1\",\"OSL-2.0\",\"OSL-2.1\",\"OSL-3.0\",\"OpenSSL\",\"PDDL-1.0\",\"PHP-3.0\",\"PHP-3.01\",\"PSF-2.0\",\"Parity-6.0.0\",\"Parity-7.0.0\",\"Plexus\",\"PolyForm-Noncommercial-1.0.0\",\"PolyForm-Small-Business-1.0.0\",\"PostgreSQL\",\"Python-2.0\",\"QPL-1.0\",\"Qhull\",\"RHeCos-1.1\",\"RPL-1.1\",\"RPL-1.5\",\"RPSL-1.0\",\"RSA-MD\",\"RSCPL\",\"Rdisc\",\"Ruby\",\"SAX-PD\",\"SCEA\",\"SGI-B-1.0\",\"SGI-B-1.1\",\"SGI-B-2.0\",\"SHL-0.5\",\"SHL-0.51\",\"SISSL\",\"SISSL-1.2\",\"SMLNJ\",\"SMPPL\",\"SNIA\",\"SPL-1.0\",\"SSH-OpenSSH\",\"SSH-short\",\"SSPL-1.0\",\"SWL\",\"Saxpath\",\"Sendmail\",\"Sendmail-8.23\",\"SimPL-2.0\",\"Sleepycat\",\"Spencer-86\",\"Spencer-94\",\"Spencer-99\",\"SugarCRM-1.1.3\",\"TAPR-OHL-1.0\",\"TCL\",\"TCP-wrappers\",\"TMate\",\"TORQUE-1.1\",\"TOSL\",\"TU-Berlin-1.0\",\"TU-Berlin-2.0\",\"UCL-1.0\",\"UPL-1.0\",\"Unicode-DFS-2015\",\"Unicode-DFS-2016\",\"Unicode-TOU\",\"Unlicense\",\"VOSTROM\",\"VSL-1.0\",\"Vim\",\"W3C\",\"W3C-19980720\",\"W3C-20150513\",\"WTFPL\",\"Watcom-1.0\",\"Wsuipa\",\"X11\",\"XFree86-1.1\",\"XSkat\",\"Xerox\",\"Xnet\",\"YPL-1.0\",\"YPL-1.1\",\"ZPL-1.1\",\"ZPL-2.0\",\"ZPL-2.1\",\"Zed\",\"Zend-2.0\",\"Zimbra-1.3\",\"Zimbra-1.4\",\"Zlib\",\"blessing\",\"bzip2-1.0.5\",\"bzip2-1.0.6\",\"copyleft-next-0.3.0\",\"copyleft-next-0.3.1\",\"curl\",\"diffmark\",\"dvipdfm\",\"eGenix\",\"etalab-2.0\",\"gSOAP-1.3b\",\"gnuplot\",\"iMatix\",\"libpng-2.0\",\"libselinux-1.0\",\"libtiff\",\"mpich2\",\"psfrag\",\"psutils\",\"xinetd\",\"xpp\",\"zlib-acknowledgement\"]"); /***/ }), -/* 195 */ +/* 196 */ /***/ (function(module) { module.exports = JSON.parse("[\"AGPL-1.0\",\"AGPL-3.0\",\"BSD-2-Clause-FreeBSD\",\"BSD-2-Clause-NetBSD\",\"GFDL-1.1\",\"GFDL-1.2\",\"GFDL-1.3\",\"GPL-1.0\",\"GPL-2.0\",\"GPL-2.0-with-GCC-exception\",\"GPL-2.0-with-autoconf-exception\",\"GPL-2.0-with-bison-exception\",\"GPL-2.0-with-classpath-exception\",\"GPL-2.0-with-font-exception\",\"GPL-3.0\",\"GPL-3.0-with-GCC-exception\",\"GPL-3.0-with-autoconf-exception\",\"LGPL-2.0\",\"LGPL-2.1\",\"LGPL-3.0\",\"Nunit\",\"StandardML-NJ\",\"eCos-2.0\",\"wxWindows\"]"); /***/ }), -/* 196 */ +/* 197 */ /***/ (function(module) { module.exports = JSON.parse("[\"389-exception\",\"Autoconf-exception-2.0\",\"Autoconf-exception-3.0\",\"Bison-exception-2.2\",\"Bootloader-exception\",\"Classpath-exception-2.0\",\"CLISP-exception-2.0\",\"DigiRule-FOSS-exception\",\"eCos-exception-2.0\",\"Fawkes-Runtime-exception\",\"FLTK-exception\",\"Font-exception-2.0\",\"freertos-exception-2.0\",\"GCC-exception-2.0\",\"GCC-exception-3.1\",\"gnu-javamail-exception\",\"GPL-3.0-linking-exception\",\"GPL-3.0-linking-source-exception\",\"GPL-CC-1.0\",\"i2p-gpl-java-exception\",\"Libtool-exception\",\"Linux-syscall-note\",\"LLVM-exception\",\"LZMA-exception\",\"mif-exception\",\"Nokia-Qt-exception-1.1\",\"OCaml-LGPL-linking-exception\",\"OCCT-exception-1.0\",\"OpenJDK-assembly-exception-1.0\",\"openvpn-openssl-exception\",\"PS-or-PDF-font-exception-20170817\",\"Qt-GPL-exception-1.0\",\"Qt-LGPL-exception-1.1\",\"Qwt-exception-1.0\",\"Swift-exception\",\"u-boot-exception-2.0\",\"Universal-FOSS-exception-1.0\",\"WxWindows-exception-3.1\"]"); /***/ }), -/* 197 */ +/* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -20573,7 +20592,7 @@ module.exports = function (tokens) { /***/ }), -/* 198 */ +/* 199 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -20591,8 +20610,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -var parse = __webpack_require__(192) -var spdxLicenseIds = __webpack_require__(194) +var parse = __webpack_require__(193) +var spdxLicenseIds = __webpack_require__(195) function valid (string) { try { @@ -20943,14 +20962,14 @@ function upgradeGPLs (value) { /***/ }), -/* 199 */ +/* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var url = __webpack_require__(200) -var gitHosts = __webpack_require__(201) -var GitHost = module.exports = __webpack_require__(202) +var url = __webpack_require__(201) +var gitHosts = __webpack_require__(202) +var GitHost = module.exports = __webpack_require__(203) var protocolToRepresentationMap = { 'git+ssh:': 'sshurl', @@ -21098,13 +21117,13 @@ function parseGitUrl (giturl) { /***/ }), -/* 200 */ +/* 201 */ /***/ (function(module, exports) { module.exports = require("url"); /***/ }), -/* 201 */ +/* 202 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -21190,12 +21209,12 @@ function formatHashFragment (fragment) { /***/ }), -/* 202 */ +/* 203 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var gitHosts = __webpack_require__(201) +var gitHosts = __webpack_require__(202) /* eslint-disable node/no-deprecated-api */ // copy-pasta util._extend from node's source, to avoid pulling @@ -21353,28 +21372,28 @@ GitHost.prototype.toString = function (opts) { /***/ }), -/* 203 */ +/* 204 */ /***/ (function(module, exports, __webpack_require__) { -var async = __webpack_require__(204); -async.core = __webpack_require__(215); -async.isCore = __webpack_require__(217); -async.sync = __webpack_require__(218); +var async = __webpack_require__(205); +async.core = __webpack_require__(216); +async.isCore = __webpack_require__(218); +async.sync = __webpack_require__(219); module.exports = async; /***/ }), -/* 204 */ +/* 205 */ /***/ (function(module, exports, __webpack_require__) { var fs = __webpack_require__(134); -var getHomedir = __webpack_require__(205); +var getHomedir = __webpack_require__(206); var path = __webpack_require__(4); -var caller = __webpack_require__(206); -var nodeModulesPaths = __webpack_require__(207); -var normalizeOptions = __webpack_require__(209); -var isCore = __webpack_require__(210); +var caller = __webpack_require__(207); +var nodeModulesPaths = __webpack_require__(208); +var normalizeOptions = __webpack_require__(210); +var isCore = __webpack_require__(211); var realpathFS = process.platform !== 'win32' && fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; @@ -21700,7 +21719,7 @@ module.exports = function resolve(x, options, callback) { /***/ }), -/* 205 */ +/* 206 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -21731,7 +21750,7 @@ module.exports = os.homedir || function homedir() { /***/ }), -/* 206 */ +/* 207 */ /***/ (function(module, exports) { module.exports = function () { @@ -21745,11 +21764,11 @@ module.exports = function () { /***/ }), -/* 207 */ +/* 208 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(4); -var parse = path.parse || __webpack_require__(208); // eslint-disable-line global-require +var parse = path.parse || __webpack_require__(209); // eslint-disable-line global-require var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { var prefix = '/'; @@ -21793,7 +21812,7 @@ module.exports = function nodeModulesPaths(start, opts, request) { /***/ }), -/* 208 */ +/* 209 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -21875,7 +21894,7 @@ module.exports.win32 = win32.parse; /***/ }), -/* 209 */ +/* 210 */ /***/ (function(module, exports) { module.exports = function (x, opts) { @@ -21891,13 +21910,13 @@ module.exports = function (x, opts) { /***/ }), -/* 210 */ +/* 211 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var has = __webpack_require__(211); +var has = __webpack_require__(212); function specifierIncluded(current, specifier) { var nodeParts = current.split('.'); @@ -21959,7 +21978,7 @@ function versionIncluded(nodeVersion, specifierValue) { return matchesRange(current, specifierValue); } -var data = __webpack_require__(214); +var data = __webpack_require__(215); module.exports = function isCore(x, nodeVersion) { return has(data, x) && versionIncluded(nodeVersion, data[x]); @@ -21967,31 +21986,31 @@ module.exports = function isCore(x, nodeVersion) { /***/ }), -/* 211 */ +/* 212 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var bind = __webpack_require__(212); +var bind = __webpack_require__(213); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); /***/ }), -/* 212 */ +/* 213 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var implementation = __webpack_require__(213); +var implementation = __webpack_require__(214); module.exports = Function.prototype.bind || implementation; /***/ }), -/* 213 */ +/* 214 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22050,13 +22069,13 @@ module.exports = function bind(that) { /***/ }), -/* 214 */ +/* 215 */ /***/ (function(module) { module.exports = JSON.parse("{\"assert\":true,\"node:assert\":[\">= 14.18 && < 15\",\">= 16\"],\"assert/strict\":\">= 15\",\"node:assert/strict\":\">= 16\",\"async_hooks\":\">= 8\",\"node:async_hooks\":[\">= 14.18 && < 15\",\">= 16\"],\"buffer_ieee754\":\">= 0.5 && < 0.9.7\",\"buffer\":true,\"node:buffer\":[\">= 14.18 && < 15\",\">= 16\"],\"child_process\":true,\"node:child_process\":[\">= 14.18 && < 15\",\">= 16\"],\"cluster\":\">= 0.5\",\"node:cluster\":[\">= 14.18 && < 15\",\">= 16\"],\"console\":true,\"node:console\":[\">= 14.18 && < 15\",\">= 16\"],\"constants\":true,\"node:constants\":[\">= 14.18 && < 15\",\">= 16\"],\"crypto\":true,\"node:crypto\":[\">= 14.18 && < 15\",\">= 16\"],\"_debug_agent\":\">= 1 && < 8\",\"_debugger\":\"< 8\",\"dgram\":true,\"node:dgram\":[\">= 14.18 && < 15\",\">= 16\"],\"diagnostics_channel\":[\">= 14.17 && < 15\",\">= 15.1\"],\"node:diagnostics_channel\":[\">= 14.18 && < 15\",\">= 16\"],\"dns\":true,\"node:dns\":[\">= 14.18 && < 15\",\">= 16\"],\"dns/promises\":\">= 15\",\"node:dns/promises\":\">= 16\",\"domain\":\">= 0.7.12\",\"node:domain\":[\">= 14.18 && < 15\",\">= 16\"],\"events\":true,\"node:events\":[\">= 14.18 && < 15\",\">= 16\"],\"freelist\":\"< 6\",\"fs\":true,\"node:fs\":[\">= 14.18 && < 15\",\">= 16\"],\"fs/promises\":[\">= 10 && < 10.1\",\">= 14\"],\"node:fs/promises\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_agent\":\">= 0.11.1\",\"node:_http_agent\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_client\":\">= 0.11.1\",\"node:_http_client\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_common\":\">= 0.11.1\",\"node:_http_common\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_incoming\":\">= 0.11.1\",\"node:_http_incoming\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_outgoing\":\">= 0.11.1\",\"node:_http_outgoing\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_server\":\">= 0.11.1\",\"node:_http_server\":[\">= 14.18 && < 15\",\">= 16\"],\"http\":true,\"node:http\":[\">= 14.18 && < 15\",\">= 16\"],\"http2\":\">= 8.8\",\"node:http2\":[\">= 14.18 && < 15\",\">= 16\"],\"https\":true,\"node:https\":[\">= 14.18 && < 15\",\">= 16\"],\"inspector\":\">= 8\",\"node:inspector\":[\">= 14.18 && < 15\",\">= 16\"],\"inspector/promises\":[\">= 19\"],\"node:inspector/promises\":[\">= 19\"],\"_linklist\":\"< 8\",\"module\":true,\"node:module\":[\">= 14.18 && < 15\",\">= 16\"],\"net\":true,\"node:net\":[\">= 14.18 && < 15\",\">= 16\"],\"node-inspect/lib/_inspect\":\">= 7.6 && < 12\",\"node-inspect/lib/internal/inspect_client\":\">= 7.6 && < 12\",\"node-inspect/lib/internal/inspect_repl\":\">= 7.6 && < 12\",\"os\":true,\"node:os\":[\">= 14.18 && < 15\",\">= 16\"],\"path\":true,\"node:path\":[\">= 14.18 && < 15\",\">= 16\"],\"path/posix\":\">= 15.3\",\"node:path/posix\":\">= 16\",\"path/win32\":\">= 15.3\",\"node:path/win32\":\">= 16\",\"perf_hooks\":\">= 8.5\",\"node:perf_hooks\":[\">= 14.18 && < 15\",\">= 16\"],\"process\":\">= 1\",\"node:process\":[\">= 14.18 && < 15\",\">= 16\"],\"punycode\":\">= 0.5\",\"node:punycode\":[\">= 14.18 && < 15\",\">= 16\"],\"querystring\":true,\"node:querystring\":[\">= 14.18 && < 15\",\">= 16\"],\"readline\":true,\"node:readline\":[\">= 14.18 && < 15\",\">= 16\"],\"readline/promises\":\">= 17\",\"node:readline/promises\":\">= 17\",\"repl\":true,\"node:repl\":[\">= 14.18 && < 15\",\">= 16\"],\"smalloc\":\">= 0.11.5 && < 3\",\"_stream_duplex\":\">= 0.9.4\",\"node:_stream_duplex\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_transform\":\">= 0.9.4\",\"node:_stream_transform\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_wrap\":\">= 1.4.1\",\"node:_stream_wrap\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_passthrough\":\">= 0.9.4\",\"node:_stream_passthrough\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_readable\":\">= 0.9.4\",\"node:_stream_readable\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_writable\":\">= 0.9.4\",\"node:_stream_writable\":[\">= 14.18 && < 15\",\">= 16\"],\"stream\":true,\"node:stream\":[\">= 14.18 && < 15\",\">= 16\"],\"stream/consumers\":\">= 16.7\",\"node:stream/consumers\":\">= 16.7\",\"stream/promises\":\">= 15\",\"node:stream/promises\":\">= 16\",\"stream/web\":\">= 16.5\",\"node:stream/web\":\">= 16.5\",\"string_decoder\":true,\"node:string_decoder\":[\">= 14.18 && < 15\",\">= 16\"],\"sys\":[\">= 0.4 && < 0.7\",\">= 0.8\"],\"node:sys\":[\">= 14.18 && < 15\",\">= 16\"],\"node:test\":[\">= 16.17 && < 17\",\">= 18\"],\"timers\":true,\"node:timers\":[\">= 14.18 && < 15\",\">= 16\"],\"timers/promises\":\">= 15\",\"node:timers/promises\":\">= 16\",\"_tls_common\":\">= 0.11.13\",\"node:_tls_common\":[\">= 14.18 && < 15\",\">= 16\"],\"_tls_legacy\":\">= 0.11.3 && < 10\",\"_tls_wrap\":\">= 0.11.3\",\"node:_tls_wrap\":[\">= 14.18 && < 15\",\">= 16\"],\"tls\":true,\"node:tls\":[\">= 14.18 && < 15\",\">= 16\"],\"trace_events\":\">= 10\",\"node:trace_events\":[\">= 14.18 && < 15\",\">= 16\"],\"tty\":true,\"node:tty\":[\">= 14.18 && < 15\",\">= 16\"],\"url\":true,\"node:url\":[\">= 14.18 && < 15\",\">= 16\"],\"util\":true,\"node:util\":[\">= 14.18 && < 15\",\">= 16\"],\"util/types\":\">= 15.3\",\"node:util/types\":\">= 16\",\"v8/tools/arguments\":\">= 10 && < 12\",\"v8/tools/codemap\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/consarray\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/csvparser\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/logreader\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/profile_view\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/splaytree\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8\":\">= 1\",\"node:v8\":[\">= 14.18 && < 15\",\">= 16\"],\"vm\":true,\"node:vm\":[\">= 14.18 && < 15\",\">= 16\"],\"wasi\":\">= 13.4 && < 13.5\",\"worker_threads\":\">= 11.7\",\"node:worker_threads\":[\">= 14.18 && < 15\",\">= 16\"],\"zlib\":\">= 0.5\",\"node:zlib\":[\">= 14.18 && < 15\",\">= 16\"]}"); /***/ }), -/* 215 */ +/* 216 */ /***/ (function(module, exports, __webpack_require__) { var current = (process.versions && process.versions.node && process.versions.node.split('.')) || []; @@ -22102,7 +22121,7 @@ function versionIncluded(specifierValue) { return matchesRange(specifierValue); } -var data = __webpack_require__(216); +var data = __webpack_require__(217); var core = {}; for (var mod in data) { // eslint-disable-line no-restricted-syntax @@ -22114,16 +22133,16 @@ module.exports = core; /***/ }), -/* 216 */ +/* 217 */ /***/ (function(module) { module.exports = JSON.parse("{\"assert\":true,\"node:assert\":[\">= 14.18 && < 15\",\">= 16\"],\"assert/strict\":\">= 15\",\"node:assert/strict\":\">= 16\",\"async_hooks\":\">= 8\",\"node:async_hooks\":[\">= 14.18 && < 15\",\">= 16\"],\"buffer_ieee754\":\">= 0.5 && < 0.9.7\",\"buffer\":true,\"node:buffer\":[\">= 14.18 && < 15\",\">= 16\"],\"child_process\":true,\"node:child_process\":[\">= 14.18 && < 15\",\">= 16\"],\"cluster\":\">= 0.5\",\"node:cluster\":[\">= 14.18 && < 15\",\">= 16\"],\"console\":true,\"node:console\":[\">= 14.18 && < 15\",\">= 16\"],\"constants\":true,\"node:constants\":[\">= 14.18 && < 15\",\">= 16\"],\"crypto\":true,\"node:crypto\":[\">= 14.18 && < 15\",\">= 16\"],\"_debug_agent\":\">= 1 && < 8\",\"_debugger\":\"< 8\",\"dgram\":true,\"node:dgram\":[\">= 14.18 && < 15\",\">= 16\"],\"diagnostics_channel\":[\">= 14.17 && < 15\",\">= 15.1\"],\"node:diagnostics_channel\":[\">= 14.18 && < 15\",\">= 16\"],\"dns\":true,\"node:dns\":[\">= 14.18 && < 15\",\">= 16\"],\"dns/promises\":\">= 15\",\"node:dns/promises\":\">= 16\",\"domain\":\">= 0.7.12\",\"node:domain\":[\">= 14.18 && < 15\",\">= 16\"],\"events\":true,\"node:events\":[\">= 14.18 && < 15\",\">= 16\"],\"freelist\":\"< 6\",\"fs\":true,\"node:fs\":[\">= 14.18 && < 15\",\">= 16\"],\"fs/promises\":[\">= 10 && < 10.1\",\">= 14\"],\"node:fs/promises\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_agent\":\">= 0.11.1\",\"node:_http_agent\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_client\":\">= 0.11.1\",\"node:_http_client\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_common\":\">= 0.11.1\",\"node:_http_common\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_incoming\":\">= 0.11.1\",\"node:_http_incoming\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_outgoing\":\">= 0.11.1\",\"node:_http_outgoing\":[\">= 14.18 && < 15\",\">= 16\"],\"_http_server\":\">= 0.11.1\",\"node:_http_server\":[\">= 14.18 && < 15\",\">= 16\"],\"http\":true,\"node:http\":[\">= 14.18 && < 15\",\">= 16\"],\"http2\":\">= 8.8\",\"node:http2\":[\">= 14.18 && < 15\",\">= 16\"],\"https\":true,\"node:https\":[\">= 14.18 && < 15\",\">= 16\"],\"inspector\":\">= 8\",\"node:inspector\":[\">= 14.18 && < 15\",\">= 16\"],\"_linklist\":\"< 8\",\"module\":true,\"node:module\":[\">= 14.18 && < 15\",\">= 16\"],\"net\":true,\"node:net\":[\">= 14.18 && < 15\",\">= 16\"],\"node-inspect/lib/_inspect\":\">= 7.6 && < 12\",\"node-inspect/lib/internal/inspect_client\":\">= 7.6 && < 12\",\"node-inspect/lib/internal/inspect_repl\":\">= 7.6 && < 12\",\"os\":true,\"node:os\":[\">= 14.18 && < 15\",\">= 16\"],\"path\":true,\"node:path\":[\">= 14.18 && < 15\",\">= 16\"],\"path/posix\":\">= 15.3\",\"node:path/posix\":\">= 16\",\"path/win32\":\">= 15.3\",\"node:path/win32\":\">= 16\",\"perf_hooks\":\">= 8.5\",\"node:perf_hooks\":[\">= 14.18 && < 15\",\">= 16\"],\"process\":\">= 1\",\"node:process\":[\">= 14.18 && < 15\",\">= 16\"],\"punycode\":\">= 0.5\",\"node:punycode\":[\">= 14.18 && < 15\",\">= 16\"],\"querystring\":true,\"node:querystring\":[\">= 14.18 && < 15\",\">= 16\"],\"readline\":true,\"node:readline\":[\">= 14.18 && < 15\",\">= 16\"],\"readline/promises\":\">= 17\",\"node:readline/promises\":\">= 17\",\"repl\":true,\"node:repl\":[\">= 14.18 && < 15\",\">= 16\"],\"smalloc\":\">= 0.11.5 && < 3\",\"_stream_duplex\":\">= 0.9.4\",\"node:_stream_duplex\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_transform\":\">= 0.9.4\",\"node:_stream_transform\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_wrap\":\">= 1.4.1\",\"node:_stream_wrap\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_passthrough\":\">= 0.9.4\",\"node:_stream_passthrough\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_readable\":\">= 0.9.4\",\"node:_stream_readable\":[\">= 14.18 && < 15\",\">= 16\"],\"_stream_writable\":\">= 0.9.4\",\"node:_stream_writable\":[\">= 14.18 && < 15\",\">= 16\"],\"stream\":true,\"node:stream\":[\">= 14.18 && < 15\",\">= 16\"],\"stream/consumers\":\">= 16.7\",\"node:stream/consumers\":\">= 16.7\",\"stream/promises\":\">= 15\",\"node:stream/promises\":\">= 16\",\"stream/web\":\">= 16.5\",\"node:stream/web\":\">= 16.5\",\"string_decoder\":true,\"node:string_decoder\":[\">= 14.18 && < 15\",\">= 16\"],\"sys\":[\">= 0.4 && < 0.7\",\">= 0.8\"],\"node:sys\":[\">= 14.18 && < 15\",\">= 16\"],\"node:test\":\">= 18\",\"timers\":true,\"node:timers\":[\">= 14.18 && < 15\",\">= 16\"],\"timers/promises\":\">= 15\",\"node:timers/promises\":\">= 16\",\"_tls_common\":\">= 0.11.13\",\"node:_tls_common\":[\">= 14.18 && < 15\",\">= 16\"],\"_tls_legacy\":\">= 0.11.3 && < 10\",\"_tls_wrap\":\">= 0.11.3\",\"node:_tls_wrap\":[\">= 14.18 && < 15\",\">= 16\"],\"tls\":true,\"node:tls\":[\">= 14.18 && < 15\",\">= 16\"],\"trace_events\":\">= 10\",\"node:trace_events\":[\">= 14.18 && < 15\",\">= 16\"],\"tty\":true,\"node:tty\":[\">= 14.18 && < 15\",\">= 16\"],\"url\":true,\"node:url\":[\">= 14.18 && < 15\",\">= 16\"],\"util\":true,\"node:util\":[\">= 14.18 && < 15\",\">= 16\"],\"util/types\":\">= 15.3\",\"node:util/types\":\">= 16\",\"v8/tools/arguments\":\">= 10 && < 12\",\"v8/tools/codemap\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/consarray\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/csvparser\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/logreader\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/profile_view\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8/tools/splaytree\":[\">= 4.4 && < 5\",\">= 5.2 && < 12\"],\"v8\":\">= 1\",\"node:v8\":[\">= 14.18 && < 15\",\">= 16\"],\"vm\":true,\"node:vm\":[\">= 14.18 && < 15\",\">= 16\"],\"wasi\":\">= 13.4 && < 13.5\",\"worker_threads\":\">= 11.7\",\"node:worker_threads\":[\">= 14.18 && < 15\",\">= 16\"],\"zlib\":\">= 0.5\",\"node:zlib\":[\">= 14.18 && < 15\",\">= 16\"]}"); /***/ }), -/* 217 */ +/* 218 */ /***/ (function(module, exports, __webpack_require__) { -var isCoreModule = __webpack_require__(210); +var isCoreModule = __webpack_require__(211); module.exports = function isCore(x) { return isCoreModule(x); @@ -22131,16 +22150,16 @@ module.exports = function isCore(x) { /***/ }), -/* 218 */ +/* 219 */ /***/ (function(module, exports, __webpack_require__) { -var isCore = __webpack_require__(210); +var isCore = __webpack_require__(211); var fs = __webpack_require__(134); var path = __webpack_require__(4); -var getHomedir = __webpack_require__(205); -var caller = __webpack_require__(206); -var nodeModulesPaths = __webpack_require__(207); -var normalizeOptions = __webpack_require__(209); +var getHomedir = __webpack_require__(206); +var caller = __webpack_require__(207); +var nodeModulesPaths = __webpack_require__(208); +var normalizeOptions = __webpack_require__(210); var realpathFS = process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; @@ -22345,7 +22364,7 @@ module.exports = function resolveSync(x, options) { /***/ }), -/* 219 */ +/* 220 */ /***/ (function(module, exports) { module.exports = extractDescription @@ -22365,17 +22384,17 @@ function extractDescription (d) { /***/ }), -/* 220 */ +/* 221 */ /***/ (function(module) { module.exports = JSON.parse("{\"topLevel\":{\"dependancies\":\"dependencies\",\"dependecies\":\"dependencies\",\"depdenencies\":\"dependencies\",\"devEependencies\":\"devDependencies\",\"depends\":\"dependencies\",\"dev-dependencies\":\"devDependencies\",\"devDependences\":\"devDependencies\",\"devDepenencies\":\"devDependencies\",\"devdependencies\":\"devDependencies\",\"repostitory\":\"repository\",\"repo\":\"repository\",\"prefereGlobal\":\"preferGlobal\",\"hompage\":\"homepage\",\"hampage\":\"homepage\",\"autohr\":\"author\",\"autor\":\"author\",\"contributers\":\"contributors\",\"publicationConfig\":\"publishConfig\",\"script\":\"scripts\"},\"bugs\":{\"web\":\"url\",\"name\":\"url\"},\"script\":{\"server\":\"start\",\"tests\":\"test\"}}"); /***/ }), -/* 221 */ +/* 222 */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(112) -var messages = __webpack_require__(222) +var messages = __webpack_require__(223) module.exports = function() { var args = Array.prototype.slice.call(arguments, 0) @@ -22400,20 +22419,20 @@ function makeTypoWarning (providedName, probableName, field) { /***/ }), -/* 222 */ +/* 223 */ /***/ (function(module) { module.exports = JSON.parse("{\"repositories\":\"'repositories' (plural) Not supported. Please pick one as the 'repository' field\",\"missingRepository\":\"No repository field.\",\"brokenGitUrl\":\"Probably broken git url: %s\",\"nonObjectScripts\":\"scripts must be an object\",\"nonStringScript\":\"script values must be string commands\",\"nonArrayFiles\":\"Invalid 'files' member\",\"invalidFilename\":\"Invalid filename in 'files' list: %s\",\"nonArrayBundleDependencies\":\"Invalid 'bundleDependencies' list. Must be array of package names\",\"nonStringBundleDependency\":\"Invalid bundleDependencies member: %s\",\"nonDependencyBundleDependency\":\"Non-dependency in bundleDependencies: %s\",\"nonObjectDependencies\":\"%s field must be an object\",\"nonStringDependency\":\"Invalid dependency: %s %s\",\"deprecatedArrayDependencies\":\"specifying %s as array is deprecated\",\"deprecatedModules\":\"modules field is deprecated\",\"nonArrayKeywords\":\"keywords should be an array of strings\",\"nonStringKeyword\":\"keywords should be an array of strings\",\"conflictingName\":\"%s is also the name of a node core module.\",\"nonStringDescription\":\"'description' field should be a string\",\"missingDescription\":\"No description\",\"missingReadme\":\"No README data\",\"missingLicense\":\"No license field.\",\"nonEmailUrlBugsString\":\"Bug string field must be url, email, or {email,url}\",\"nonUrlBugsUrlField\":\"bugs.url field must be a string url. Deleted.\",\"nonEmailBugsEmailField\":\"bugs.email field must be a string email. Deleted.\",\"emptyNormalizedBugs\":\"Normalized value of bugs field is an empty object. Deleted.\",\"nonUrlHomepage\":\"homepage field must be a string url. Deleted.\",\"invalidLicense\":\"license should be a valid SPDX license expression\",\"typo\":\"%s should probably be %s.\"}"); /***/ }), -/* 223 */ +/* 224 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const writeJsonFile = __webpack_require__(224); -const sortKeys = __webpack_require__(230); +const writeJsonFile = __webpack_require__(225); +const sortKeys = __webpack_require__(231); const dependencyKeys = new Set([ 'dependencies', @@ -22478,18 +22497,18 @@ module.exports.sync = (filePath, data, options) => { /***/ }), -/* 224 */ +/* 225 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const fs = __webpack_require__(133); -const writeFileAtomic = __webpack_require__(225); -const sortKeys = __webpack_require__(230); -const makeDir = __webpack_require__(232); -const pify = __webpack_require__(233); -const detectIndent = __webpack_require__(234); +const writeFileAtomic = __webpack_require__(226); +const sortKeys = __webpack_require__(231); +const makeDir = __webpack_require__(233); +const pify = __webpack_require__(234); +const detectIndent = __webpack_require__(235); const init = (fn, filePath, data, options) => { if (!filePath) { @@ -22561,7 +22580,7 @@ module.exports.sync = (filePath, data, options) => { /***/ }), -/* 225 */ +/* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22572,8 +22591,8 @@ module.exports._getTmpname = getTmpname // for testing module.exports._cleanupOnExit = cleanupOnExit var fs = __webpack_require__(133) -var MurmurHash3 = __webpack_require__(226) -var onExit = __webpack_require__(227) +var MurmurHash3 = __webpack_require__(227) +var onExit = __webpack_require__(228) var path = __webpack_require__(4) var activeFiles = {} @@ -22581,7 +22600,7 @@ var activeFiles = {} /* istanbul ignore next */ var threadId = (function getId () { try { - var workerThreads = __webpack_require__(229) + var workerThreads = __webpack_require__(230) /// if we are in main thread, this is set to `0` return workerThreads.threadId @@ -22806,7 +22825,7 @@ function writeFileSync (filename, data, options) { /***/ }), -/* 226 */ +/* 227 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -22948,7 +22967,7 @@ function writeFileSync (filename, data, options) { /***/ }), -/* 227 */ +/* 228 */ /***/ (function(module, exports, __webpack_require__) { // Note: since nyc uses this module to output coverage, any lines @@ -22977,10 +22996,10 @@ if (!processOk(process)) { } } else { var assert = __webpack_require__(140) - var signals = __webpack_require__(228) + var signals = __webpack_require__(229) var isWin = /^win/i.test(process.platform) - var EE = __webpack_require__(156) + var EE = __webpack_require__(157) /* istanbul ignore if */ if (typeof EE !== 'function') { EE = EE.EventEmitter @@ -23156,7 +23175,7 @@ if (!processOk(process)) { /***/ }), -/* 228 */ +/* 229 */ /***/ (function(module, exports) { // This is not the set of all possible signals. @@ -23215,18 +23234,18 @@ if (process.platform === 'linux') { /***/ }), -/* 229 */ +/* 230 */ /***/ (function(module, exports) { module.exports = require(undefined); /***/ }), -/* 230 */ +/* 231 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const isPlainObj = __webpack_require__(231); +const isPlainObj = __webpack_require__(232); module.exports = (obj, opts) => { if (!isPlainObj(obj)) { @@ -23283,7 +23302,7 @@ module.exports = (obj, opts) => { /***/ }), -/* 231 */ +/* 232 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23297,15 +23316,15 @@ module.exports = function (x) { /***/ }), -/* 232 */ +/* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); const path = __webpack_require__(4); -const pify = __webpack_require__(233); -const semver = __webpack_require__(190); +const pify = __webpack_require__(234); +const semver = __webpack_require__(191); const defaults = { mode: 0o777 & (~process.umask()), @@ -23443,7 +23462,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 233 */ +/* 234 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23518,7 +23537,7 @@ module.exports = (input, options) => { /***/ }), -/* 234 */ +/* 235 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23647,7 +23666,7 @@ module.exports = str => { /***/ }), -/* 235 */ +/* 236 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23661,7 +23680,7 @@ exports.runScriptInPackage = runScriptInPackage; exports.runScriptInPackageStreaming = runScriptInPackageStreaming; exports.yarnWorkspacesInfo = yarnWorkspacesInfo; -var _child_process = __webpack_require__(236); +var _child_process = __webpack_require__(237); /* * SPDX-License-Identifier: Apache-2.0 @@ -23752,7 +23771,7 @@ async function yarnWorkspacesInfo(directory) { } /***/ }), -/* 236 */ +/* 237 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -23768,11 +23787,11 @@ var _stream = __webpack_require__(138); var _chalk = _interopRequireDefault(__webpack_require__(113)); -var _execa = _interopRequireDefault(__webpack_require__(237)); +var _execa = _interopRequireDefault(__webpack_require__(238)); -var _strongLogTransformer = _interopRequireDefault(__webpack_require__(273)); +var _strongLogTransformer = _interopRequireDefault(__webpack_require__(274)); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -23861,23 +23880,23 @@ function spawnStreaming(command, args, opts, { } /***/ }), -/* 237 */ +/* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const childProcess = __webpack_require__(238); -const crossSpawn = __webpack_require__(239); -const stripFinalNewline = __webpack_require__(252); -const npmRunPath = __webpack_require__(253); -const onetime = __webpack_require__(254); -const makeError = __webpack_require__(256); -const normalizeStdio = __webpack_require__(261); -const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(262); -const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(263); -const {mergePromise, getSpawnedPromise} = __webpack_require__(271); -const {joinCommand, parseCommand} = __webpack_require__(272); +const childProcess = __webpack_require__(239); +const crossSpawn = __webpack_require__(240); +const stripFinalNewline = __webpack_require__(253); +const npmRunPath = __webpack_require__(254); +const onetime = __webpack_require__(255); +const makeError = __webpack_require__(257); +const normalizeStdio = __webpack_require__(262); +const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(263); +const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(264); +const {mergePromise, getSpawnedPromise} = __webpack_require__(272); +const {joinCommand, parseCommand} = __webpack_require__(273); const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; @@ -24128,21 +24147,21 @@ module.exports.node = (scriptPath, args, options = {}) => { /***/ }), -/* 238 */ +/* 239 */ /***/ (function(module, exports) { module.exports = require("child_process"); /***/ }), -/* 239 */ +/* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const cp = __webpack_require__(238); -const parse = __webpack_require__(240); -const enoent = __webpack_require__(251); +const cp = __webpack_require__(239); +const parse = __webpack_require__(241); +const enoent = __webpack_require__(252); function spawn(command, args, options) { // Parse the arguments @@ -24180,16 +24199,16 @@ module.exports._enoent = enoent; /***/ }), -/* 240 */ +/* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const resolveCommand = __webpack_require__(241); -const escape = __webpack_require__(247); -const readShebang = __webpack_require__(248); +const resolveCommand = __webpack_require__(242); +const escape = __webpack_require__(248); +const readShebang = __webpack_require__(249); const isWin = process.platform === 'win32'; const isExecutableRegExp = /\.(?:com|exe)$/i; @@ -24278,15 +24297,15 @@ module.exports = parse; /***/ }), -/* 241 */ +/* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const which = __webpack_require__(242); -const getPathKey = __webpack_require__(246); +const which = __webpack_require__(243); +const getPathKey = __webpack_require__(247); function resolveCommandAttempt(parsed, withoutPathExt) { const env = parsed.options.env || process.env; @@ -24337,7 +24356,7 @@ module.exports = resolveCommand; /***/ }), -/* 242 */ +/* 243 */ /***/ (function(module, exports, __webpack_require__) { const isWindows = process.platform === 'win32' || @@ -24346,7 +24365,7 @@ const isWindows = process.platform === 'win32' || const path = __webpack_require__(4) const COLON = isWindows ? ';' : ':' -const isexe = __webpack_require__(243) +const isexe = __webpack_require__(244) const getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) @@ -24468,15 +24487,15 @@ which.sync = whichSync /***/ }), -/* 243 */ +/* 244 */ /***/ (function(module, exports, __webpack_require__) { var fs = __webpack_require__(134) var core if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = __webpack_require__(244) -} else { core = __webpack_require__(245) +} else { + core = __webpack_require__(246) } module.exports = isexe @@ -24531,7 +24550,7 @@ function sync (path, options) { /***/ }), -/* 244 */ +/* 245 */ /***/ (function(module, exports, __webpack_require__) { module.exports = isexe @@ -24579,7 +24598,7 @@ function sync (path, options) { /***/ }), -/* 245 */ +/* 246 */ /***/ (function(module, exports, __webpack_require__) { module.exports = isexe @@ -24626,7 +24645,7 @@ function checkMode (stat, options) { /***/ }), -/* 246 */ +/* 247 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24649,7 +24668,7 @@ module.exports.default = pathKey; /***/ }), -/* 247 */ +/* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24701,14 +24720,14 @@ module.exports.argument = escapeArgument; /***/ }), -/* 248 */ +/* 249 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const shebangCommand = __webpack_require__(249); +const shebangCommand = __webpack_require__(250); function readShebang(command) { // Read the first 150 bytes from the file @@ -24731,12 +24750,12 @@ module.exports = readShebang; /***/ }), -/* 249 */ +/* 250 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const shebangRegex = __webpack_require__(250); +const shebangRegex = __webpack_require__(251); module.exports = (string = '') => { const match = string.match(shebangRegex); @@ -24757,7 +24776,7 @@ module.exports = (string = '') => { /***/ }), -/* 250 */ +/* 251 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24766,7 +24785,7 @@ module.exports = /^#!(.*)/; /***/ }), -/* 251 */ +/* 252 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24832,7 +24851,7 @@ module.exports = { /***/ }), -/* 252 */ +/* 253 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24855,13 +24874,13 @@ module.exports = input => { /***/ }), -/* 253 */ +/* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathKey = __webpack_require__(246); +const pathKey = __webpack_require__(247); const npmRunPath = options => { options = { @@ -24909,12 +24928,12 @@ module.exports.env = options => { /***/ }), -/* 254 */ +/* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const mimicFn = __webpack_require__(255); +const mimicFn = __webpack_require__(256); const calledFunctions = new WeakMap(); @@ -24960,7 +24979,7 @@ module.exports.callCount = function_ => { /***/ }), -/* 255 */ +/* 256 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24980,12 +24999,12 @@ module.exports.default = mimicFn; /***/ }), -/* 256 */ +/* 257 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const {signalsByName} = __webpack_require__(257); +const {signalsByName} = __webpack_require__(258); const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { if (timedOut) { @@ -25073,14 +25092,14 @@ module.exports = makeError; /***/ }), -/* 257 */ +/* 258 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=__webpack_require__(121); -var _signals=__webpack_require__(258); -var _realtime=__webpack_require__(260); +var _signals=__webpack_require__(259); +var _realtime=__webpack_require__(261); @@ -25150,14 +25169,14 @@ const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumb //# sourceMappingURL=main.js.map /***/ }), -/* 258 */ +/* 259 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=__webpack_require__(121); -var _core=__webpack_require__(259); -var _realtime=__webpack_require__(260); +var _core=__webpack_require__(260); +var _realtime=__webpack_require__(261); @@ -25191,7 +25210,7 @@ return{name,number,description,supported,action,forced,standard}; //# sourceMappingURL=signals.js.map /***/ }), -/* 259 */ +/* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25470,7 +25489,7 @@ standard:"other"}];exports.SIGNALS=SIGNALS; //# sourceMappingURL=core.js.map /***/ }), -/* 260 */ +/* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25495,7 +25514,7 @@ const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX; //# sourceMappingURL=realtime.js.map /***/ }), -/* 261 */ +/* 262 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25554,13 +25573,13 @@ module.exports.node = opts => { /***/ }), -/* 262 */ +/* 263 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const os = __webpack_require__(121); -const onExit = __webpack_require__(227); +const onExit = __webpack_require__(228); const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5; @@ -25673,14 +25692,14 @@ module.exports = { /***/ }), -/* 263 */ +/* 264 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const isStream = __webpack_require__(264); -const getStream = __webpack_require__(265); -const mergeStream = __webpack_require__(270); +const isStream = __webpack_require__(265); +const getStream = __webpack_require__(266); +const mergeStream = __webpack_require__(271); // `input` option const handleInput = (spawned, input) => { @@ -25777,7 +25796,7 @@ module.exports = { /***/ }), -/* 264 */ +/* 265 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25812,14 +25831,14 @@ module.exports = isStream; /***/ }), -/* 265 */ +/* 266 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const {constants: BufferConstants} = __webpack_require__(266); -const pump = __webpack_require__(267); -const bufferStream = __webpack_require__(269); +const {constants: BufferConstants} = __webpack_require__(267); +const pump = __webpack_require__(268); +const bufferStream = __webpack_require__(270); class MaxBufferError extends Error { constructor() { @@ -25879,17 +25898,17 @@ module.exports.MaxBufferError = MaxBufferError; /***/ }), -/* 266 */ +/* 267 */ /***/ (function(module, exports) { module.exports = require("buffer"); /***/ }), -/* 267 */ +/* 268 */ /***/ (function(module, exports, __webpack_require__) { -var once = __webpack_require__(162) -var eos = __webpack_require__(268) +var once = __webpack_require__(163) +var eos = __webpack_require__(269) var fs = __webpack_require__(134) // we only need fs to get the ReadStream and WriteStream prototypes var noop = function () {} @@ -25973,10 +25992,10 @@ module.exports = pump /***/ }), -/* 268 */ +/* 269 */ /***/ (function(module, exports, __webpack_require__) { -var once = __webpack_require__(162); +var once = __webpack_require__(163); var noop = function() {}; @@ -26073,7 +26092,7 @@ module.exports = eos; /***/ }), -/* 269 */ +/* 270 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26132,7 +26151,7 @@ module.exports = options => { /***/ }), -/* 270 */ +/* 271 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26180,7 +26199,7 @@ module.exports = function (/*streams...*/) { /***/ }), -/* 271 */ +/* 272 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26233,7 +26252,7 @@ module.exports = { /***/ }), -/* 272 */ +/* 273 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26272,7 +26291,7 @@ module.exports = { /***/ }), -/* 273 */ +/* 274 */ /***/ (function(module, exports, __webpack_require__) { // Copyright IBM Corp. 2014,2018. All Rights Reserved. @@ -26280,12 +26299,12 @@ module.exports = { // This file is licensed under the Apache License 2.0. // License text available at https://opensource.org/licenses/Apache-2.0 -module.exports = __webpack_require__(274); -module.exports.cli = __webpack_require__(278); +module.exports = __webpack_require__(275); +module.exports.cli = __webpack_require__(279); /***/ }), -/* 274 */ +/* 275 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26300,9 +26319,9 @@ var stream = __webpack_require__(138); var util = __webpack_require__(112); var fs = __webpack_require__(134); -var through = __webpack_require__(275); -var duplexer = __webpack_require__(276); -var StringDecoder = __webpack_require__(277).StringDecoder; +var through = __webpack_require__(276); +var duplexer = __webpack_require__(277); +var StringDecoder = __webpack_require__(278).StringDecoder; module.exports = Logger; @@ -26491,7 +26510,7 @@ function lineMerger(host) { /***/ }), -/* 275 */ +/* 276 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(138) @@ -26605,7 +26624,7 @@ function through (write, end, opts) { /***/ }), -/* 276 */ +/* 277 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(138) @@ -26698,13 +26717,13 @@ function duplex(writer, reader) { /***/ }), -/* 277 */ +/* 278 */ /***/ (function(module, exports) { module.exports = require("string_decoder"); /***/ }), -/* 278 */ +/* 279 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26715,11 +26734,11 @@ module.exports = require("string_decoder"); -var minimist = __webpack_require__(279); +var minimist = __webpack_require__(280); var path = __webpack_require__(4); -var Logger = __webpack_require__(274); -var pkg = __webpack_require__(280); +var Logger = __webpack_require__(275); +var pkg = __webpack_require__(281); module.exports = cli; @@ -26773,7 +26792,7 @@ function usage($0, p) { /***/ }), -/* 279 */ +/* 280 */ /***/ (function(module, exports) { module.exports = function (args, opts) { @@ -27028,13 +27047,13 @@ function isConstructorOrProto (obj, key) { /***/ }), -/* 280 */ +/* 281 */ /***/ (function(module) { module.exports = JSON.parse("{\"name\":\"strong-log-transformer\",\"version\":\"2.1.0\",\"description\":\"Stream transformer that prefixes lines with timestamps and other things.\",\"author\":\"Ryan Graham \",\"license\":\"Apache-2.0\",\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/strongloop/strong-log-transformer\"},\"keywords\":[\"logging\",\"streams\"],\"bugs\":{\"url\":\"https://github.com/strongloop/strong-log-transformer/issues\"},\"homepage\":\"https://github.com/strongloop/strong-log-transformer\",\"directories\":{\"test\":\"test\"},\"bin\":{\"sl-log-transformer\":\"bin/sl-log-transformer.js\"},\"main\":\"index.js\",\"scripts\":{\"test\":\"tap --100 test/test-*\"},\"dependencies\":{\"duplexer\":\"^0.1.1\",\"minimist\":\"^1.2.0\",\"through\":\"^2.3.4\"},\"devDependencies\":{\"tap\":\"^12.0.1\"},\"engines\":{\"node\":\">=4\"}}"); /***/ }), -/* 281 */ +/* 282 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27046,19 +27065,19 @@ Object.defineProperty(exports, "__esModule", { exports.copyWorkspacePackages = copyWorkspacePackages; exports.workspacePackagePaths = workspacePackagePaths; -var _glob = _interopRequireDefault(__webpack_require__(147)); +var _glob = _interopRequireDefault(__webpack_require__(148)); var _path = _interopRequireDefault(__webpack_require__(4)); var _util = __webpack_require__(112); -var _config = __webpack_require__(282); +var _config = __webpack_require__(283); var _fs = __webpack_require__(131); -var _package_json = __webpack_require__(165); +var _package_json = __webpack_require__(166); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -27160,7 +27179,7 @@ function packagesFromGlobPattern({ } /***/ }), -/* 282 */ +/* 283 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27238,7 +27257,7 @@ function getProjectPaths({ } /***/ }), -/* 283 */ +/* 284 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27249,15 +27268,13 @@ Object.defineProperty(exports, "__esModule", { }); exports.getAllChecksums = getAllChecksums; -var _fs = _interopRequireDefault(__webpack_require__(134)); - -var _crypto = _interopRequireDefault(__webpack_require__(284)); +var _promises = __webpack_require__(143); -var _util = __webpack_require__(112); +var _crypto = _interopRequireDefault(__webpack_require__(285)); -var _execa = _interopRequireDefault(__webpack_require__(237)); +var _execa = _interopRequireDefault(__webpack_require__(238)); -var _yarn_lock = __webpack_require__(285); +var _yarn_lock = __webpack_require__(286); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -27290,8 +27307,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * specific language governing permissions and limitations * under the License. */ -const statAsync = (0, _util.promisify)(_fs.default.stat); - const projectBySpecificitySorter = (a, b) => b.path.length - a.path.length; /** Get the changed files for a set of projects */ @@ -27408,7 +27423,7 @@ async function getChecksum(project, changes, yarnLock, osd, log) { return `${path}:deleted`; } - const stats = await statAsync(osd.getAbsolute(path)); + const stats = await (0, _promises.stat)(osd.getAbsolute(path)); log.verbose(`[${project.name}] modified time ${stats.mtimeMs} for ${path}`); return `${path}:${stats.mtimeMs}`; })); @@ -27466,13 +27481,13 @@ async function getAllChecksums(osd, log, yarnLock) { } /***/ }), -/* 284 */ +/* 285 */ /***/ (function(module, exports) { module.exports = require("crypto"); /***/ }), -/* 285 */ +/* 286 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27484,7 +27499,11 @@ Object.defineProperty(exports, "__esModule", { exports.readYarnLock = readYarnLock; exports.resolveDepsForProject = resolveDepsForProject; -var _lockfile = __webpack_require__(286); +var _lockfile = __webpack_require__(287); + +var _crossPlatform = __webpack_require__(288); + +var _path = __webpack_require__(4); var _fs = __webpack_require__(131); @@ -27524,7 +27543,7 @@ async function readYarnLock(osd) { const yarnLock = (0, _lockfile.parse)(contents); if (yarnLock.type === 'success') { - return yarnLock.object; + return fixFileLinks(yarnLock.object); } throw new Error('unable to read yarn.lock file, please run `yarn osd bootstrap`'); @@ -27536,6 +27555,32 @@ async function readYarnLock(osd) { return {}; } +/** + * Converts relative `file:` paths to absolute paths + * Yarn parsing method converts all file URIs to relative paths and this + * breaks the single-version requirement as dependencies to the same path + * would differ in their URIs across OSD and packages. + */ + + +function fixFileLinks(yarnLock) { + const fileLinkDelimiter = '@file:'; + const linkedKeys = Object.keys(yarnLock).filter(key => key.includes(fileLinkDelimiter)); + if (linkedKeys.length === 0) return yarnLock; + const updatedYarnLock = { ...yarnLock + }; + + for (const key of linkedKeys) { + const [keyName, keyPath, ...rest] = key.split(fileLinkDelimiter); + + if (!(0, _path.isAbsolute)(keyPath)) { + const updatedKeyName = [keyName, (0, _crossPlatform.standardize)((0, _path.resolve)(keyPath)), ...rest].join(fileLinkDelimiter); + updatedYarnLock[updatedKeyName] = updatedYarnLock[key]; + } + } + + return updatedYarnLock; +} /** * Get a list of the absolute dependencies of this project, as resolved * in the yarn.lock file, does not include other projects in the workspace @@ -27608,7 +27653,7 @@ function resolveDepsForProject({ } /***/ }), -/* 286 */ +/* 287 */ /***/ (function(module, exports, __webpack_require__) { module.exports = @@ -29167,7 +29212,7 @@ module.exports = invariant; /* 9 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(284); +module.exports = __webpack_require__(285); /***/ }), /* 10 */, @@ -30117,7 +30162,7 @@ exports.f = __webpack_require__(33) ? Object.defineProperty : function definePro /* 54 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(156); +module.exports = __webpack_require__(157); /***/ }), /* 55 */ @@ -31491,7 +31536,7 @@ function onceStrict (fn) { /* 63 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(266); +module.exports = __webpack_require__(267); /***/ }), /* 64 */, @@ -37886,117 +37931,226 @@ module.exports = process && support(supportLevel); /******/ ]); /***/ }), -/* 287 */ +/* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.BootstrapCacheFile = void 0; -var _fs = _interopRequireDefault(__webpack_require__(134)); +const tslib_1 = __webpack_require__(7); -var _path = _interopRequireDefault(__webpack_require__(4)); +tslib_1.__exportStar(__webpack_require__(289), exports); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +tslib_1.__exportStar(__webpack_require__(290), exports); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +tslib_1.__exportStar(__webpack_require__(291), exports); -class BootstrapCacheFile { - constructor(osd, project, checksums) { - _defineProperty(this, "path", void 0); +/***/ }), +/* 289 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "expectedValue", void 0); +"use strict"; - this.path = _path.default.resolve(project.targetLocation, '.bootstrap-cache'); +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ - if (!checksums) { - return; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.realshortpathSync = exports.realShortPathSync = exports.realpathSync = exports.realPathSync = exports.resolveToShortNameSync = exports.resolveToShortPathSync = exports.resolveToFullNameSync = exports.resolveToFullPathSync = exports.shortNameSupportedSync = exports.shortNamesSupportedSync = exports.standardize = exports.NAMESPACE_PREFIX = void 0; - const projectAndDepCacheKeys = Array.from(osd.getProjectAndDeps(project.name).values()) // sort deps by name so that the key is stable - .sort((a, b) => a.name.localeCompare(b.name)) // get the cacheKey for each project, return undefined if the cache key couldn't be determined - .map(p => { - const cacheKey = checksums.get(p.name); +const child_process_1 = __webpack_require__(239); - if (cacheKey) { - return `${p.name}:${cacheKey}`; - } - }); // if any of the relevant cache keys are undefined then the projectCacheKey must be too +const path_1 = __webpack_require__(4); - this.expectedValue = projectAndDepCacheKeys.some(k => !k) ? undefined : [`# this is only human readable for debugging, please don't try to parse this`, ...projectAndDepCacheKeys].join('\n'); - } +const fs_1 = __webpack_require__(134); - isValid() { - if (!this.expectedValue) { - return false; - } +exports.NAMESPACE_PREFIX = process.platform === 'win32' ? '\\\\?\\' : ''; +/** + * Get a standardized reference to a path + * @param {string} path - the path to standardize + * @param {boolean} [usePosix=true] - produce a posix reference + * @param {boolean} [escapedBackslashes=true] - on Windows, double-backslash the reference + * @param {boolean} [returnUNC=false] - produce an extended reference + */ - try { - return _fs.default.readFileSync(this.path, 'utf8') === this.expectedValue; - } catch (error) { - if (error.code === 'ENOENT') { - return false; - } +exports.standardize = (path, usePosix = true, escapedBackslashes = true, returnUNC = false) => { + var _process; - throw error; - } - } + // Force os-dependant separators + const normal = path_1.normalize(path); // Filter out in-browser executions as well as non-windows ones - delete() { - try { - _fs.default.unlinkSync(this.path); - } catch (error) { - if (error.code !== 'ENOENT') { - throw error; - } - } + if (((_process = process) === null || _process === void 0 ? void 0 : _process.platform) !== 'win32') return normal; + if (usePosix) return normal.replace(/\\/g, '/');else if (escapedBackslashes) return normal.replace(/\\/g, '\\\\');else if (returnUNC) return '\\\\?\\' + normal; + return normal; +}; +/** + * Windows-only function that uses PowerShell to calculate the full path + * @param {string} path + * @private + */ + + +const getFullPathSync = path => { + if (process.platform !== 'win32') return path; + + try { + var _child_process_1$exec, _child_process_1$exec2; + + const fullName = (_child_process_1$exec = child_process_1.execSync(`powershell "(Get-Item -LiteralPath '${path}').FullName"`, { + encoding: 'utf8' + })) === null || _child_process_1$exec === void 0 ? void 0 : (_child_process_1$exec2 = _child_process_1$exec.trim) === null || _child_process_1$exec2 === void 0 ? void 0 : _child_process_1$exec2.call(_child_process_1$exec); // Make sure we got something back + + if ((fullName === null || fullName === void 0 ? void 0 : fullName.length) > 2) return fullName; + } catch (ex) {// Do nothing } - write() { - if (!this.expectedValue) { - return; - } + return path; +}; +/** + * Windows-only function that uses PowerShell and Com Object to calculate the 8.3 path + * @param {string} path + * @private + */ - _fs.default.mkdirSync(_path.default.dirname(this.path), { - recursive: true - }); - _fs.default.writeFileSync(this.path, this.expectedValue); +const getShortPathSync = path => { + if (process.platform !== 'win32') return path; + + try { + var _child_process_1$exec3, _child_process_1$exec4; + + const shortPath = (_child_process_1$exec3 = child_process_1.execSync(`powershell "$FSO = New-Object -ComObject Scripting.FileSystemObject; $O = (Get-Item -LiteralPath '${path}'); if ($O.PSIsContainer) { $FSO.GetFolder($O.FullName).ShortPath } else { $FSO.GetFile($O.FullName).ShortPath }"`, { + encoding: 'utf8' + })) === null || _child_process_1$exec3 === void 0 ? void 0 : (_child_process_1$exec4 = _child_process_1$exec3.trim) === null || _child_process_1$exec4 === void 0 ? void 0 : _child_process_1$exec4.call(_child_process_1$exec3); // Make sure we got something back + + if ((shortPath === null || shortPath === void 0 ? void 0 : shortPath.length) > 2) return shortPath; + } catch (ex) {// Do nothing } -} + return path; +}; +/** + * Checks if Windows 8.3 short names are supported on the volume of the given path + * @param {string} [path='.'] - the path to examine + */ -exports.BootstrapCacheFile = BootstrapCacheFile; + +exports.shortNamesSupportedSync = (path = '.') => { + if (process.platform !== 'win32') return false; + const testFileName = '.___osd-cross-platform-test.file'; + const file = path_1.resolve(path, testFileName); // Create a test file if it doesn't exist + + if (!fs_1.existsSync(file)) fs_1.closeSync(fs_1.openSync(file, 'w')); // If the returned value's basename is not the same as the requested file name, it must be a short name + + const foundShortName = path_1.basename(getShortPathSync(file)) !== testFileName; // Cleanup + + fs_1.unlinkSync(file); + return foundShortName; +}; +/** + * @borrows shortNamesSupportedSync + */ + + +exports.shortNameSupportedSync = exports.shortNamesSupportedSync; +/** + * Get the full pathname + * @param {string} path - the path to resolve + */ + +exports.resolveToFullPathSync = path => getFullPathSync(path_1.resolve(path)); +/** + * @borrows resolveToFullPathSync + */ + + +exports.resolveToFullNameSync = exports.resolveToFullPathSync; +/** + * Get the short pathname + * @param {string} path - the path to resolve + */ + +exports.resolveToShortPathSync = path => getShortPathSync(path_1.resolve(path)); +/** + * @borrows resolveToShortPathSync + */ + + +exports.resolveToShortNameSync = exports.resolveToShortPathSync; +/** + * Get the canonical pathname + * @param {string} path - the path to resolve + */ + +exports.realPathSync = path => getFullPathSync(fs_1.realpathSync(path, 'utf8')); +/** + * @borrows realPathSync + */ + + +exports.realpathSync = exports.realPathSync; +/** + * Get the canonical pathname + * @param {string} path - the path to resolve + */ + +exports.realShortPathSync = path => getShortPathSync(fs_1.realpathSync(path, 'utf8')); +/** + * @borrows realShortPathSync + */ + + +exports.realshortpathSync = exports.realShortPathSync; /***/ }), -/* 288 */ +/* 290 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.validateDependencies = validateDependencies; - -var _lockfile = __webpack_require__(286); +exports.PROCESS_POSIX_WORKING_DIR = exports.PROCESS_WORKING_DIR = void 0; -var _dedent = _interopRequireDefault(__webpack_require__(2)); +const path_1 = __webpack_require__(289); +/** + * The full pathname of the working directory of the process + * @constant + * @type {string} + */ -var _chalk = _interopRequireDefault(__webpack_require__(113)); -var _fs = __webpack_require__(131); +exports.PROCESS_WORKING_DIR = path_1.resolveToFullPathSync(process.cwd()); +/** + * The full pathname of the working directory of the process, in POSIX format + * @constant + * @type {string} + */ -var _log = __webpack_require__(144); +exports.PROCESS_POSIX_WORKING_DIR = path_1.standardize(exports.PROCESS_WORKING_DIR); -var _projects_tree = __webpack_require__(289); +/***/ }), +/* 291 */ +/***/ (function(module, exports, __webpack_require__) { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +"use strict"; /* * SPDX-License-Identifier: Apache-2.0 @@ -38009,6 +38163,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * GitHub history for details. */ +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.relativeToRepoRoot = exports.getRepoRoot = exports.getMatchingRoot = exports.UPSTREAM_BRANCH = exports.REPO_ROOT_8_3 = exports.REPO_ROOT = void 0; + +const tslib_1 = __webpack_require__(7); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -38027,48 +38187,319 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * specific language governing permissions and limitations * under the License. */ -// @ts-expect-error published types are useless -async function validateDependencies(osd, yarnLock) { - // look through all of the packages in the yarn.lock file to see if - // we have accidentally installed multiple lodash v4 versions - const lodash4Versions = new Set(); - const lodash4Reqs = new Set(); - - for (const [req, dep] of Object.entries(yarnLock)) { - if (req.startsWith('lodash@') && dep.version.startsWith('4.')) { - lodash4Reqs.add(req); - lodash4Versions.add(dep.version); - } - } // if we find more than one lodash v4 version installed then delete - // lodash v4 requests from the yarn.lock file and prompt the user to - // retry bootstrap so that a single v4 version will be installed - - - if (lodash4Versions.size > 1) { - for (const req of lodash4Reqs) { - delete yarnLock[req]; - } - await (0, _fs.writeFile)(osd.getAbsolute('yarn.lock'), (0, _lockfile.stringify)(yarnLock), 'utf8'); - _log.log.error((0, _dedent.default)` +const path_1 = __webpack_require__(4); - Multiple version of lodash v4 were detected, so they have been removed - from the yarn.lock file. Please rerun yarn osd bootstrap to coalese the - lodash versions installed. +const load_json_file_1 = tslib_1.__importDefault(__webpack_require__(292)); - If you still see this error when you re-bootstrap then you might need - to force a new dependency to use the latest version of lodash via the - "resolutions" field in package.json. +const path_2 = __webpack_require__(289); - If you have questions about this please reach out to the operations team. +const readOpenSearchDashboardsPkgJson = dir => { + try { + const path = path_1.resolve(dir, 'package.json'); + const json = load_json_file_1.default.sync(path); - `); + if ((json === null || json === void 0 ? void 0 : json.name) === 'opensearch-dashboards') { + return json; + } + } catch (error) { + if (error && error.code === 'ENOENT') { + return; + } - process.exit(1); - } // look through all the dependencies of production packages and production - // dependencies of those packages to determine if we're shipping any versions - // of lodash v3 in the distributable + throw error; + } +}; + +const findOpenSearchDashboardsPackageJson = () => { + // search for the opensearch-dashboards directory, since this file is moved around it might + // not be where we think but should always be a relatively close parent + // of this directory + const startDir = path_2.realPathSync(__dirname); + const { + root: rootDir + } = path_1.parse(startDir); + let cursor = startDir; + + while (true) { + const opensearchDashboardsPkgJson = readOpenSearchDashboardsPkgJson(cursor); + + if (opensearchDashboardsPkgJson) { + return { + opensearchDashboardsDir: cursor, + opensearchDashboardsPkgJson: opensearchDashboardsPkgJson + }; + } + + const parent = path_1.dirname(cursor); + + if (parent === rootDir) { + throw new Error(`unable to find opensearch-dashboards directory from ${startDir}`); + } + + cursor = parent; + } +}; + +const { + opensearchDashboardsDir, + opensearchDashboardsPkgJson +} = findOpenSearchDashboardsPackageJson(); +exports.REPO_ROOT = path_2.resolveToFullPathSync(opensearchDashboardsDir); +exports.REPO_ROOT_8_3 = path_2.resolveToShortPathSync(opensearchDashboardsDir); +exports.UPSTREAM_BRANCH = opensearchDashboardsPkgJson.branch; + +exports.getMatchingRoot = (path, rootPaths) => { + const rootPathsArray = Array.isArray(rootPaths) ? rootPaths : [rootPaths]; // We can only find the appropriate root if an absolute path was given + + if (path && path_1.isAbsolute(path)) { + // Return the matching root if one is found or return `undefined` + return rootPathsArray.find(root => path.startsWith(root)); + } + + return undefined; +}; + +exports.getRepoRoot = path => exports.getMatchingRoot(path, [exports.REPO_ROOT, exports.REPO_ROOT_8_3]); + +exports.relativeToRepoRoot = path => { + const repoRoot = exports.getRepoRoot(path); + return repoRoot ? path_1.relative(repoRoot, path) : null; +}; + +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(4); +const {promisify} = __webpack_require__(112); +const fs = __webpack_require__(133); +const stripBom = __webpack_require__(293); +const parseJson = __webpack_require__(168); + +const parse = (data, filePath, options = {}) => { + data = stripBom(data); + + if (typeof options.beforeParse === 'function') { + data = options.beforeParse(data); + } + + return parseJson(data, options.reviver, path.relative(process.cwd(), filePath)); +}; + +module.exports = async (filePath, options) => parse(await promisify(fs.readFile)(filePath, 'utf8'), filePath, options); +module.exports.sync = (filePath, options) => parse(fs.readFileSync(filePath, 'utf8'), filePath, options); + + +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = string => { + if (typeof string !== 'string') { + throw new TypeError(`Expected a string, got ${typeof string}`); + } + + // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string + // conversion translates it to FEFF (UTF-16 BOM) + if (string.charCodeAt(0) === 0xFEFF) { + return string.slice(1); + } + + return string; +}; + + +/***/ }), +/* 294 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BootstrapCacheFile = void 0; + +var _fs = _interopRequireDefault(__webpack_require__(134)); + +var _path = _interopRequireDefault(__webpack_require__(4)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +class BootstrapCacheFile { + constructor(osd, project, checksums) { + _defineProperty(this, "path", void 0); + + _defineProperty(this, "expectedValue", void 0); + + this.path = _path.default.resolve(project.targetLocation, '.bootstrap-cache'); + + if (!checksums) { + return; + } + + const projectAndDepCacheKeys = Array.from(osd.getProjectAndDeps(project.name).values()) // sort deps by name so that the key is stable + .sort((a, b) => a.name.localeCompare(b.name)) // get the cacheKey for each project, return undefined if the cache key couldn't be determined + .map(p => { + const cacheKey = checksums.get(p.name); + + if (cacheKey) { + return `${p.name}:${cacheKey}`; + } + }); // if any of the relevant cache keys are undefined then the projectCacheKey must be too + + this.expectedValue = projectAndDepCacheKeys.some(k => !k) ? undefined : [`# this is only human readable for debugging, please don't try to parse this`, ...projectAndDepCacheKeys].join('\n'); + } + + isValid() { + if (!this.expectedValue) { + return false; + } + + try { + return _fs.default.readFileSync(this.path, 'utf8') === this.expectedValue; + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } + } + + delete() { + try { + _fs.default.unlinkSync(this.path); + } catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } + } + } + + write() { + if (!this.expectedValue) { + return; + } + + _fs.default.mkdirSync(_path.default.dirname(this.path), { + recursive: true + }); + + _fs.default.writeFileSync(this.path, this.expectedValue); + } + +} + +exports.BootstrapCacheFile = BootstrapCacheFile; + +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validateDependencies = validateDependencies; + +var _lockfile = __webpack_require__(287); + +var _dedent = _interopRequireDefault(__webpack_require__(2)); + +var _chalk = _interopRequireDefault(__webpack_require__(113)); + +var _fs = __webpack_require__(131); + +var _log = __webpack_require__(145); + +var _projects_tree = __webpack_require__(296); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +// @ts-expect-error published types are useless +async function validateDependencies(osd, yarnLock) { + // look through all of the packages in the yarn.lock file to see if + // we have accidentally installed multiple lodash v4 versions + const lodash4Versions = new Set(); + const lodash4Reqs = new Set(); + + for (const [req, dep] of Object.entries(yarnLock)) { + if (req.startsWith('lodash@') && dep.version.startsWith('4.')) { + lodash4Reqs.add(req); + lodash4Versions.add(dep.version); + } + } // if we find more than one lodash v4 version installed then delete + // lodash v4 requests from the yarn.lock file and prompt the user to + // retry bootstrap so that a single v4 version will be installed + + + if (lodash4Versions.size > 1) { + for (const req of lodash4Reqs) { + delete yarnLock[req]; + } + + await (0, _fs.writeFile)(osd.getAbsolute('yarn.lock'), (0, _lockfile.stringify)(yarnLock), 'utf8'); + + _log.log.error((0, _dedent.default)` + + Multiple version of lodash v4 were detected, so they have been removed + from the yarn.lock file. Please rerun yarn osd bootstrap to coalese the + lodash versions installed. + + If you still see this error when you re-bootstrap then you might need + to force a new dependency to use the latest version of lodash via the + "resolutions" field in package.json. + + If you have questions about this please reach out to the operations team. + + `); + + process.exit(1); + } // look through all the dependencies of production packages and production + // dependencies of those packages to determine if we're shipping any versions + // of lodash v3 in the distributable const prodDependencies = osd.resolveAllProductionDependencies(yarnLock, _log.log); @@ -38190,7 +38621,7 @@ function getDevOnlyProductionDepsTree(osd, projectName) { } /***/ }), -/* 289 */ +/* 296 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -38206,7 +38637,7 @@ var _chalk = _interopRequireDefault(__webpack_require__(113)); var _path = _interopRequireDefault(__webpack_require__(4)); -var _crossPlatform = __webpack_require__(290); +var _crossPlatform = __webpack_require__(288); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -38366,393 +38797,7 @@ function addProjectToTree(tree, pathParts, project) { } /***/ }), -/* 290 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -const tslib_1 = __webpack_require__(7); - -tslib_1.__exportStar(__webpack_require__(291), exports); - -tslib_1.__exportStar(__webpack_require__(292), exports); - -tslib_1.__exportStar(__webpack_require__(293), exports); - -/***/ }), -/* 291 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.realshortpathSync = exports.realShortPathSync = exports.realpathSync = exports.realPathSync = exports.resolveToShortNameSync = exports.resolveToShortPathSync = exports.resolveToFullNameSync = exports.resolveToFullPathSync = exports.shortNameSupportedSync = exports.shortNamesSupportedSync = exports.standardize = exports.NAMESPACE_PREFIX = void 0; - -const child_process_1 = __webpack_require__(238); - -const path_1 = __webpack_require__(4); - -const fs_1 = __webpack_require__(134); - -exports.NAMESPACE_PREFIX = process.platform === 'win32' ? '\\\\?\\' : ''; -/** - * Get a standardized reference to a path - * @param {string} path - the path to standardize - * @param {boolean} [usePosix=true] - produce a posix reference - * @param {boolean} [escapedBackslashes=true] - on Windows, double-backslash the reference - * @param {boolean} [returnUNC=false] - produce an extended reference - */ - -exports.standardize = (path, usePosix = true, escapedBackslashes = true, returnUNC = false) => { - var _process; - - // Force os-dependant separators - const normal = path_1.normalize(path); // Filter out in-browser executions as well as non-windows ones - - if (((_process = process) === null || _process === void 0 ? void 0 : _process.platform) !== 'win32') return normal; - if (usePosix) return normal.replace(/\\/g, '/');else if (escapedBackslashes) return normal.replace(/\\/g, '\\\\');else if (returnUNC) return '\\\\?\\' + normal; - return normal; -}; -/** - * Windows-only function that uses PowerShell to calculate the full path - * @param {string} path - * @private - */ - - -const getFullPathSync = path => { - if (process.platform !== 'win32') return path; - - try { - var _child_process_1$exec, _child_process_1$exec2; - - const fullName = (_child_process_1$exec = child_process_1.execSync(`powershell "(Get-Item -LiteralPath '${path}').FullName"`, { - encoding: 'utf8' - })) === null || _child_process_1$exec === void 0 ? void 0 : (_child_process_1$exec2 = _child_process_1$exec.trim) === null || _child_process_1$exec2 === void 0 ? void 0 : _child_process_1$exec2.call(_child_process_1$exec); // Make sure we got something back - - if ((fullName === null || fullName === void 0 ? void 0 : fullName.length) > 2) return fullName; - } catch (ex) {// Do nothing - } - - return path; -}; -/** - * Windows-only function that uses PowerShell and Com Object to calculate the 8.3 path - * @param {string} path - * @private - */ - - -const getShortPathSync = path => { - if (process.platform !== 'win32') return path; - - try { - var _child_process_1$exec3, _child_process_1$exec4; - - const shortPath = (_child_process_1$exec3 = child_process_1.execSync(`powershell "$FSO = New-Object -ComObject Scripting.FileSystemObject; $O = (Get-Item -LiteralPath '${path}'); if ($O.PSIsContainer) { $FSO.GetFolder($O.FullName).ShortPath } else { $FSO.GetFile($O.FullName).ShortPath }"`, { - encoding: 'utf8' - })) === null || _child_process_1$exec3 === void 0 ? void 0 : (_child_process_1$exec4 = _child_process_1$exec3.trim) === null || _child_process_1$exec4 === void 0 ? void 0 : _child_process_1$exec4.call(_child_process_1$exec3); // Make sure we got something back - - if ((shortPath === null || shortPath === void 0 ? void 0 : shortPath.length) > 2) return shortPath; - } catch (ex) {// Do nothing - } - - return path; -}; -/** - * Checks if Windows 8.3 short names are supported on the volume of the given path - * @param {string} [path='.'] - the path to examine - */ - - -exports.shortNamesSupportedSync = (path = '.') => { - if (process.platform !== 'win32') return false; - const testFileName = '.___osd-cross-platform-test.file'; - const file = path_1.resolve(path, testFileName); // Create a test file if it doesn't exist - - if (!fs_1.existsSync(file)) fs_1.closeSync(fs_1.openSync(file, 'w')); // If the returned value's basename is not the same as the requested file name, it must be a short name - - const foundShortName = path_1.basename(getShortPathSync(file)) !== testFileName; // Cleanup - - fs_1.unlinkSync(file); - return foundShortName; -}; -/** - * @borrows shortNamesSupportedSync - */ - - -exports.shortNameSupportedSync = exports.shortNamesSupportedSync; -/** - * Get the full pathname - * @param {string} path - the path to resolve - */ - -exports.resolveToFullPathSync = path => getFullPathSync(path_1.resolve(path)); -/** - * @borrows resolveToFullPathSync - */ - - -exports.resolveToFullNameSync = exports.resolveToFullPathSync; -/** - * Get the short pathname - * @param {string} path - the path to resolve - */ - -exports.resolveToShortPathSync = path => getShortPathSync(path_1.resolve(path)); -/** - * @borrows resolveToShortPathSync - */ - - -exports.resolveToShortNameSync = exports.resolveToShortPathSync; -/** - * Get the canonical pathname - * @param {string} path - the path to resolve - */ - -exports.realPathSync = path => getFullPathSync(fs_1.realpathSync(path, 'utf8')); -/** - * @borrows realPathSync - */ - - -exports.realpathSync = exports.realPathSync; -/** - * Get the canonical pathname - * @param {string} path - the path to resolve - */ - -exports.realShortPathSync = path => getShortPathSync(fs_1.realpathSync(path, 'utf8')); -/** - * @borrows realShortPathSync - */ - - -exports.realshortpathSync = exports.realShortPathSync; - -/***/ }), -/* 292 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PROCESS_POSIX_WORKING_DIR = exports.PROCESS_WORKING_DIR = void 0; - -const path_1 = __webpack_require__(291); -/** - * The full pathname of the working directory of the process - * @constant - * @type {string} - */ - - -exports.PROCESS_WORKING_DIR = path_1.resolveToFullPathSync(process.cwd()); -/** - * The full pathname of the working directory of the process, in POSIX format - * @constant - * @type {string} - */ - -exports.PROCESS_POSIX_WORKING_DIR = path_1.standardize(exports.PROCESS_WORKING_DIR); - -/***/ }), -/* 293 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - * - * Any modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.relativeToRepoRoot = exports.getRepoRoot = exports.getMatchingRoot = exports.UPSTREAM_BRANCH = exports.REPO_ROOT_8_3 = exports.REPO_ROOT = void 0; - -const tslib_1 = __webpack_require__(7); -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -const path_1 = __webpack_require__(4); - -const load_json_file_1 = tslib_1.__importDefault(__webpack_require__(294)); - -const path_2 = __webpack_require__(291); - -const readOpenSearchDashboardsPkgJson = dir => { - try { - const path = path_1.resolve(dir, 'package.json'); - const json = load_json_file_1.default.sync(path); - - if ((json === null || json === void 0 ? void 0 : json.name) === 'opensearch-dashboards') { - return json; - } - } catch (error) { - if (error && error.code === 'ENOENT') { - return; - } - - throw error; - } -}; - -const findOpenSearchDashboardsPackageJson = () => { - // search for the opensearch-dashboards directory, since this file is moved around it might - // not be where we think but should always be a relatively close parent - // of this directory - const startDir = path_2.realPathSync(__dirname); - const { - root: rootDir - } = path_1.parse(startDir); - let cursor = startDir; - - while (true) { - const opensearchDashboardsPkgJson = readOpenSearchDashboardsPkgJson(cursor); - - if (opensearchDashboardsPkgJson) { - return { - opensearchDashboardsDir: cursor, - opensearchDashboardsPkgJson: opensearchDashboardsPkgJson - }; - } - - const parent = path_1.dirname(cursor); - - if (parent === rootDir) { - throw new Error(`unable to find opensearch-dashboards directory from ${startDir}`); - } - - cursor = parent; - } -}; - -const { - opensearchDashboardsDir, - opensearchDashboardsPkgJson -} = findOpenSearchDashboardsPackageJson(); -exports.REPO_ROOT = path_2.resolveToFullPathSync(opensearchDashboardsDir); -exports.REPO_ROOT_8_3 = path_2.resolveToShortPathSync(opensearchDashboardsDir); -exports.UPSTREAM_BRANCH = opensearchDashboardsPkgJson.branch; - -exports.getMatchingRoot = (path, rootPaths) => { - const rootPathsArray = Array.isArray(rootPaths) ? rootPaths : [rootPaths]; // We can only find the appropriate root if an absolute path was given - - if (path && path_1.isAbsolute(path)) { - // Return the matching root if one is found or return `undefined` - return rootPathsArray.find(root => path.startsWith(root)); - } - - return undefined; -}; - -exports.getRepoRoot = path => exports.getMatchingRoot(path, [exports.REPO_ROOT, exports.REPO_ROOT_8_3]); - -exports.relativeToRepoRoot = path => { - const repoRoot = exports.getRepoRoot(path); - return repoRoot ? path_1.relative(repoRoot, path) : null; -}; - -/***/ }), -/* 294 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const path = __webpack_require__(4); -const {promisify} = __webpack_require__(112); -const fs = __webpack_require__(133); -const stripBom = __webpack_require__(295); -const parseJson = __webpack_require__(167); - -const parse = (data, filePath, options = {}) => { - data = stripBom(data); - - if (typeof options.beforeParse === 'function') { - data = options.beforeParse(data); - } - - return parseJson(data, options.reviver, path.relative(process.cwd(), filePath)); -}; - -module.exports = async (filePath, options) => parse(await promisify(fs.readFile)(filePath, 'utf8'), filePath, options); -module.exports.sync = (filePath, options) => parse(fs.readFileSync(filePath, 'utf8'), filePath, options); - - -/***/ }), -/* 295 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = string => { - if (typeof string !== 'string') { - throw new TypeError(`Expected a string, got ${typeof string}`); - } - - // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string - // conversion translates it to FEFF (UTF-16 BOM) - if (string.charCodeAt(0) === 0xFEFF) { - return string.slice(1); - } - - return string; -}; - - -/***/ }), -/* 296 */ +/* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -38763,15 +38808,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.CleanCommand = void 0; -var _del = _interopRequireDefault(__webpack_require__(297)); +var _del = _interopRequireDefault(__webpack_require__(298)); -var _ora = _interopRequireDefault(__webpack_require__(386)); +var _ora = _interopRequireDefault(__webpack_require__(387)); var _path = __webpack_require__(4); var _fs = __webpack_require__(131); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -38876,21 +38921,21 @@ const CleanCommand = { exports.CleanCommand = CleanCommand; /***/ }), -/* 297 */ +/* 298 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(112); const path = __webpack_require__(4); -const globby = __webpack_require__(298); -const isGlob = __webpack_require__(310); -const slash = __webpack_require__(377); +const globby = __webpack_require__(299); +const isGlob = __webpack_require__(311); +const slash = __webpack_require__(378); const gracefulFs = __webpack_require__(133); -const isPathCwd = __webpack_require__(379); -const isPathInside = __webpack_require__(380); -const rimraf = __webpack_require__(381); -const pMap = __webpack_require__(382); +const isPathCwd = __webpack_require__(380); +const isPathInside = __webpack_require__(381); +const rimraf = __webpack_require__(382); +const pMap = __webpack_require__(383); const rimrafP = promisify(rimraf); @@ -39022,18 +39067,18 @@ module.exports.sync = (patterns, {force, dryRun, cwd = process.cwd(), ...options /***/ }), -/* 298 */ +/* 299 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const arrayUnion = __webpack_require__(299); -const merge2 = __webpack_require__(300); -const fastGlob = __webpack_require__(301); -const dirGlob = __webpack_require__(373); -const gitignore = __webpack_require__(375); -const {FilterStream, UniqueStream} = __webpack_require__(378); +const arrayUnion = __webpack_require__(300); +const merge2 = __webpack_require__(301); +const fastGlob = __webpack_require__(302); +const dirGlob = __webpack_require__(374); +const gitignore = __webpack_require__(376); +const {FilterStream, UniqueStream} = __webpack_require__(379); const DEFAULT_FILTER = () => false; @@ -39210,7 +39255,7 @@ module.exports.gitignore = gitignore; /***/ }), -/* 299 */ +/* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39222,7 +39267,7 @@ module.exports = (...arguments_) => { /***/ }), -/* 300 */ +/* 301 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39373,18 +39418,18 @@ function pauseStreams (streams, options) { /***/ }), -/* 301 */ +/* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const taskManager = __webpack_require__(302); -const patternManager = __webpack_require__(331); -const async_1 = __webpack_require__(332); -const stream_1 = __webpack_require__(369); -const sync_1 = __webpack_require__(370); -const settings_1 = __webpack_require__(372); -const utils = __webpack_require__(303); +const taskManager = __webpack_require__(303); +const patternManager = __webpack_require__(332); +const async_1 = __webpack_require__(333); +const stream_1 = __webpack_require__(370); +const sync_1 = __webpack_require__(371); +const settings_1 = __webpack_require__(373); +const utils = __webpack_require__(304); async function FastGlob(source, options) { assertPatternsInput(source); const works = getWorks(source, async_1.default, options); @@ -39448,14 +39493,14 @@ module.exports = FastGlob; /***/ }), -/* 302 */ +/* 303 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; -const utils = __webpack_require__(303); +const utils = __webpack_require__(304); function generate(patterns, settings) { const positivePatterns = getPositivePatterns(patterns); const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); @@ -39535,31 +39580,31 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 303 */ +/* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; -const array = __webpack_require__(304); +const array = __webpack_require__(305); exports.array = array; -const errno = __webpack_require__(305); +const errno = __webpack_require__(306); exports.errno = errno; -const fs = __webpack_require__(306); +const fs = __webpack_require__(307); exports.fs = fs; -const path = __webpack_require__(307); +const path = __webpack_require__(308); exports.path = path; -const pattern = __webpack_require__(308); +const pattern = __webpack_require__(309); exports.pattern = pattern; -const stream = __webpack_require__(329); +const stream = __webpack_require__(330); exports.stream = stream; -const string = __webpack_require__(330); +const string = __webpack_require__(331); exports.string = string; /***/ }), -/* 304 */ +/* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39588,7 +39633,7 @@ exports.splitWhen = splitWhen; /***/ }), -/* 305 */ +/* 306 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39602,7 +39647,7 @@ exports.isEnoentCodeError = isEnoentCodeError; /***/ }), -/* 306 */ +/* 307 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39628,7 +39673,7 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 307 */ +/* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39668,7 +39713,7 @@ exports.removeLeadingDotSegment = removeLeadingDotSegment; /***/ }), -/* 308 */ +/* 309 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39676,8 +39721,8 @@ exports.removeLeadingDotSegment = removeLeadingDotSegment; Object.defineProperty(exports, "__esModule", { value: true }); exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; const path = __webpack_require__(4); -const globParent = __webpack_require__(309); -const micromatch = __webpack_require__(312); +const globParent = __webpack_require__(310); +const micromatch = __webpack_require__(313); const GLOBSTAR = '**'; const ESCAPE_SYMBOL = '\\'; const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; @@ -39844,13 +39889,13 @@ exports.matchAny = matchAny; /***/ }), -/* 309 */ +/* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isGlob = __webpack_require__(310); +var isGlob = __webpack_require__(311); var pathPosixDirname = __webpack_require__(4).posix.dirname; var isWin32 = __webpack_require__(121).platform() === 'win32'; @@ -39926,7 +39971,7 @@ function isGlobby(str) { /***/ }), -/* 310 */ +/* 311 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -39936,7 +39981,7 @@ function isGlobby(str) { * Released under the MIT License. */ -var isExtglob = __webpack_require__(311); +var isExtglob = __webpack_require__(312); var chars = { '{': '}', '(': ')', '[': ']'}; var strictCheck = function(str) { if (str[0] === '!') { @@ -40082,7 +40127,7 @@ module.exports = function isGlob(str, options) { /***/ }), -/* 311 */ +/* 312 */ /***/ (function(module, exports) { /*! @@ -40108,16 +40153,16 @@ module.exports = function isExtglob(str) { /***/ }), -/* 312 */ +/* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const util = __webpack_require__(112); -const braces = __webpack_require__(313); -const picomatch = __webpack_require__(323); -const utils = __webpack_require__(326); +const braces = __webpack_require__(314); +const picomatch = __webpack_require__(324); +const utils = __webpack_require__(327); const isEmptyString = val => val === '' || val === './'; /** @@ -40582,16 +40627,16 @@ module.exports = micromatch; /***/ }), -/* 313 */ +/* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stringify = __webpack_require__(314); -const compile = __webpack_require__(316); -const expand = __webpack_require__(320); -const parse = __webpack_require__(321); +const stringify = __webpack_require__(315); +const compile = __webpack_require__(317); +const expand = __webpack_require__(321); +const parse = __webpack_require__(322); /** * Expand the given pattern or create a regex-compatible string. @@ -40759,13 +40804,13 @@ module.exports = braces; /***/ }), -/* 314 */ +/* 315 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const utils = __webpack_require__(315); +const utils = __webpack_require__(316); module.exports = (ast, options = {}) => { let stringify = (node, parent = {}) => { @@ -40798,7 +40843,7 @@ module.exports = (ast, options = {}) => { /***/ }), -/* 315 */ +/* 316 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40917,14 +40962,14 @@ exports.flatten = (...args) => { /***/ }), -/* 316 */ +/* 317 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const fill = __webpack_require__(317); -const utils = __webpack_require__(315); +const fill = __webpack_require__(318); +const utils = __webpack_require__(316); const compile = (ast, options = {}) => { let walk = (node, parent = {}) => { @@ -40981,7 +41026,7 @@ module.exports = compile; /***/ }), -/* 317 */ +/* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40995,7 +41040,7 @@ module.exports = compile; const util = __webpack_require__(112); -const toRegexRange = __webpack_require__(318); +const toRegexRange = __webpack_require__(319); const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); @@ -41237,7 +41282,7 @@ module.exports = fill; /***/ }), -/* 318 */ +/* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41250,7 +41295,7 @@ module.exports = fill; -const isNumber = __webpack_require__(319); +const isNumber = __webpack_require__(320); const toRegexRange = (min, max, options) => { if (isNumber(min) === false) { @@ -41532,7 +41577,7 @@ module.exports = toRegexRange; /***/ }), -/* 319 */ +/* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41557,15 +41602,15 @@ module.exports = function(num) { /***/ }), -/* 320 */ +/* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const fill = __webpack_require__(317); -const stringify = __webpack_require__(314); -const utils = __webpack_require__(315); +const fill = __webpack_require__(318); +const stringify = __webpack_require__(315); +const utils = __webpack_require__(316); const append = (queue = '', stash = '', enclose = false) => { let result = []; @@ -41677,13 +41722,13 @@ module.exports = expand; /***/ }), -/* 321 */ +/* 322 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stringify = __webpack_require__(314); +const stringify = __webpack_require__(315); /** * Constants @@ -41705,7 +41750,7 @@ const { CHAR_SINGLE_QUOTE, /* ' */ CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = __webpack_require__(322); +} = __webpack_require__(323); /** * parse @@ -42017,7 +42062,7 @@ module.exports = parse; /***/ }), -/* 322 */ +/* 323 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42081,27 +42126,27 @@ module.exports = { /***/ }), -/* 323 */ +/* 324 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = __webpack_require__(324); +module.exports = __webpack_require__(325); /***/ }), -/* 324 */ +/* 325 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const scan = __webpack_require__(325); -const parse = __webpack_require__(328); -const utils = __webpack_require__(326); -const constants = __webpack_require__(327); +const scan = __webpack_require__(326); +const parse = __webpack_require__(329); +const utils = __webpack_require__(327); +const constants = __webpack_require__(328); const isObject = val => val && typeof val === 'object' && !Array.isArray(val); /** @@ -42440,13 +42485,13 @@ module.exports = picomatch; /***/ }), -/* 325 */ +/* 326 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const utils = __webpack_require__(326); +const utils = __webpack_require__(327); const { CHAR_ASTERISK, /* * */ CHAR_AT, /* @ */ @@ -42463,7 +42508,7 @@ const { CHAR_RIGHT_CURLY_BRACE, /* } */ CHAR_RIGHT_PARENTHESES, /* ) */ CHAR_RIGHT_SQUARE_BRACKET /* ] */ -} = __webpack_require__(327); +} = __webpack_require__(328); const isPathSeparator = code => { return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; @@ -42838,7 +42883,7 @@ module.exports = scan; /***/ }), -/* 326 */ +/* 327 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42851,7 +42896,7 @@ const { REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL -} = __webpack_require__(327); +} = __webpack_require__(328); exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); @@ -42909,7 +42954,7 @@ exports.wrapOutput = (input, state = {}, options = {}) => { /***/ }), -/* 327 */ +/* 328 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43095,14 +43140,14 @@ module.exports = { /***/ }), -/* 328 */ +/* 329 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const constants = __webpack_require__(327); -const utils = __webpack_require__(326); +const constants = __webpack_require__(328); +const utils = __webpack_require__(327); /** * Constants @@ -44193,14 +44238,14 @@ module.exports = parse; /***/ }), -/* 329 */ +/* 330 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.merge = void 0; -const merge2 = __webpack_require__(300); +const merge2 = __webpack_require__(301); function merge(streams) { const mergedStream = merge2(streams); streams.forEach((stream) => { @@ -44217,7 +44262,7 @@ function propagateCloseEventToSources(streams) { /***/ }), -/* 330 */ +/* 331 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44235,7 +44280,7 @@ exports.isEmpty = isEmpty; /***/ }), -/* 331 */ +/* 332 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44263,14 +44308,14 @@ exports.removeDuplicateSlashes = removeDuplicateSlashes; /***/ }), -/* 332 */ +/* 333 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const stream_1 = __webpack_require__(333); -const provider_1 = __webpack_require__(362); +const stream_1 = __webpack_require__(334); +const provider_1 = __webpack_require__(363); class ProviderAsync extends provider_1.default { constructor() { super(...arguments); @@ -44298,16 +44343,16 @@ exports.default = ProviderAsync; /***/ }), -/* 333 */ +/* 334 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(138); -const fsStat = __webpack_require__(334); -const fsWalk = __webpack_require__(339); -const reader_1 = __webpack_require__(361); +const fsStat = __webpack_require__(335); +const fsWalk = __webpack_require__(340); +const reader_1 = __webpack_require__(362); class ReaderStream extends reader_1.default { constructor() { super(...arguments); @@ -44360,16 +44405,16 @@ exports.default = ReaderStream; /***/ }), -/* 334 */ +/* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.statSync = exports.stat = exports.Settings = void 0; -const async = __webpack_require__(335); -const sync = __webpack_require__(336); -const settings_1 = __webpack_require__(337); +const async = __webpack_require__(336); +const sync = __webpack_require__(337); +const settings_1 = __webpack_require__(338); exports.Settings = settings_1.default; function stat(path, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -44393,7 +44438,7 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 335 */ +/* 336 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44436,7 +44481,7 @@ function callSuccessCallback(callback, result) { /***/ }), -/* 336 */ +/* 337 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44466,13 +44511,13 @@ exports.read = read; /***/ }), -/* 337 */ +/* 338 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fs = __webpack_require__(338); +const fs = __webpack_require__(339); class Settings { constructor(_options = {}) { this._options = _options; @@ -44489,7 +44534,7 @@ exports.default = Settings; /***/ }), -/* 338 */ +/* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44513,17 +44558,17 @@ exports.createFileSystemAdapter = createFileSystemAdapter; /***/ }), -/* 339 */ +/* 340 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; -const async_1 = __webpack_require__(340); -const stream_1 = __webpack_require__(357); -const sync_1 = __webpack_require__(358); -const settings_1 = __webpack_require__(360); +const async_1 = __webpack_require__(341); +const stream_1 = __webpack_require__(358); +const sync_1 = __webpack_require__(359); +const settings_1 = __webpack_require__(361); exports.Settings = settings_1.default; function walk(directory, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -44554,13 +44599,13 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 340 */ +/* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const async_1 = __webpack_require__(341); +const async_1 = __webpack_require__(342); class AsyncProvider { constructor(_root, _settings) { this._root = _root; @@ -44591,17 +44636,17 @@ function callSuccessCallback(callback, entries) { /***/ }), -/* 341 */ +/* 342 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const events_1 = __webpack_require__(156); -const fsScandir = __webpack_require__(342); -const fastq = __webpack_require__(353); -const common = __webpack_require__(355); -const reader_1 = __webpack_require__(356); +const events_1 = __webpack_require__(157); +const fsScandir = __webpack_require__(343); +const fastq = __webpack_require__(354); +const common = __webpack_require__(356); +const reader_1 = __webpack_require__(357); class AsyncReader extends reader_1.default { constructor(_root, _settings) { super(_root, _settings); @@ -44695,16 +44740,16 @@ exports.default = AsyncReader; /***/ }), -/* 342 */ +/* 343 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Settings = exports.scandirSync = exports.scandir = void 0; -const async = __webpack_require__(343); -const sync = __webpack_require__(350); -const settings_1 = __webpack_require__(351); +const async = __webpack_require__(344); +const sync = __webpack_require__(351); +const settings_1 = __webpack_require__(352); exports.Settings = settings_1.default; function scandir(path, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -44728,18 +44773,18 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 343 */ +/* 344 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; -const fsStat = __webpack_require__(334); -const rpl = __webpack_require__(344); -const constants_1 = __webpack_require__(346); -const utils = __webpack_require__(347); -const common = __webpack_require__(349); +const fsStat = __webpack_require__(335); +const rpl = __webpack_require__(345); +const constants_1 = __webpack_require__(347); +const utils = __webpack_require__(348); +const common = __webpack_require__(350); function read(directory, settings, callback) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { readdirWithFileTypes(directory, settings, callback); @@ -44839,13 +44884,13 @@ function callSuccessCallback(callback, result) { /***/ }), -/* 344 */ +/* 345 */ /***/ (function(module, exports, __webpack_require__) { /*! run-parallel. MIT License. Feross Aboukhadijeh */ module.exports = runParallel -const queueMicrotask = __webpack_require__(345) +const queueMicrotask = __webpack_require__(346) function runParallel (tasks, cb) { let results, pending, keys @@ -44896,7 +44941,7 @@ function runParallel (tasks, cb) { /***/ }), -/* 345 */ +/* 346 */ /***/ (function(module, exports) { /*! queue-microtask. MIT License. Feross Aboukhadijeh */ @@ -44911,7 +44956,7 @@ module.exports = typeof queueMicrotask === 'function' /***/ }), -/* 346 */ +/* 347 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44935,19 +44980,19 @@ exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_B /***/ }), -/* 347 */ +/* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fs = void 0; -const fs = __webpack_require__(348); +const fs = __webpack_require__(349); exports.fs = fs; /***/ }), -/* 348 */ +/* 349 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44973,7 +45018,7 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 349 */ +/* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44993,17 +45038,17 @@ exports.joinPathSegments = joinPathSegments; /***/ }), -/* 350 */ +/* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; -const fsStat = __webpack_require__(334); -const constants_1 = __webpack_require__(346); -const utils = __webpack_require__(347); -const common = __webpack_require__(349); +const fsStat = __webpack_require__(335); +const constants_1 = __webpack_require__(347); +const utils = __webpack_require__(348); +const common = __webpack_require__(350); function read(directory, settings) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { return readdirWithFileTypes(directory, settings); @@ -45054,15 +45099,15 @@ exports.readdir = readdir; /***/ }), -/* 351 */ +/* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsStat = __webpack_require__(334); -const fs = __webpack_require__(352); +const fsStat = __webpack_require__(335); +const fs = __webpack_require__(353); class Settings { constructor(_options = {}) { this._options = _options; @@ -45085,7 +45130,7 @@ exports.default = Settings; /***/ }), -/* 352 */ +/* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45111,7 +45156,7 @@ exports.createFileSystemAdapter = createFileSystemAdapter; /***/ }), -/* 353 */ +/* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45119,7 +45164,7 @@ exports.createFileSystemAdapter = createFileSystemAdapter; /* eslint-disable no-var */ -var reusify = __webpack_require__(354) +var reusify = __webpack_require__(355) function fastqueue (context, worker, concurrency) { if (typeof context === 'function') { @@ -45401,7 +45446,7 @@ module.exports.promise = queueAsPromised /***/ }), -/* 354 */ +/* 355 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45441,7 +45486,7 @@ module.exports = reusify /***/ }), -/* 355 */ +/* 356 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45479,13 +45524,13 @@ exports.joinPathSegments = joinPathSegments; /***/ }), -/* 356 */ +/* 357 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const common = __webpack_require__(355); +const common = __webpack_require__(356); class Reader { constructor(_root, _settings) { this._root = _root; @@ -45497,14 +45542,14 @@ exports.default = Reader; /***/ }), -/* 357 */ +/* 358 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(138); -const async_1 = __webpack_require__(341); +const async_1 = __webpack_require__(342); class StreamProvider { constructor(_root, _settings) { this._root = _root; @@ -45538,13 +45583,13 @@ exports.default = StreamProvider; /***/ }), -/* 358 */ +/* 359 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(359); +const sync_1 = __webpack_require__(360); class SyncProvider { constructor(_root, _settings) { this._root = _root; @@ -45559,15 +45604,15 @@ exports.default = SyncProvider; /***/ }), -/* 359 */ +/* 360 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsScandir = __webpack_require__(342); -const common = __webpack_require__(355); -const reader_1 = __webpack_require__(356); +const fsScandir = __webpack_require__(343); +const common = __webpack_require__(356); +const reader_1 = __webpack_require__(357); class SyncReader extends reader_1.default { constructor() { super(...arguments); @@ -45625,14 +45670,14 @@ exports.default = SyncReader; /***/ }), -/* 360 */ +/* 361 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsScandir = __webpack_require__(342); +const fsScandir = __webpack_require__(343); class Settings { constructor(_options = {}) { this._options = _options; @@ -45658,15 +45703,15 @@ exports.default = Settings; /***/ }), -/* 361 */ +/* 362 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsStat = __webpack_require__(334); -const utils = __webpack_require__(303); +const fsStat = __webpack_require__(335); +const utils = __webpack_require__(304); class Reader { constructor(_settings) { this._settings = _settings; @@ -45698,17 +45743,17 @@ exports.default = Reader; /***/ }), -/* 362 */ +/* 363 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const deep_1 = __webpack_require__(363); -const entry_1 = __webpack_require__(366); -const error_1 = __webpack_require__(367); -const entry_2 = __webpack_require__(368); +const deep_1 = __webpack_require__(364); +const entry_1 = __webpack_require__(367); +const error_1 = __webpack_require__(368); +const entry_2 = __webpack_require__(369); class Provider { constructor(_settings) { this._settings = _settings; @@ -45753,14 +45798,14 @@ exports.default = Provider; /***/ }), -/* 363 */ +/* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(303); -const partial_1 = __webpack_require__(364); +const utils = __webpack_require__(304); +const partial_1 = __webpack_require__(365); class DeepFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -45822,13 +45867,13 @@ exports.default = DeepFilter; /***/ }), -/* 364 */ +/* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const matcher_1 = __webpack_require__(365); +const matcher_1 = __webpack_require__(366); class PartialMatcher extends matcher_1.default { match(filepath) { const parts = filepath.split('/'); @@ -45867,13 +45912,13 @@ exports.default = PartialMatcher; /***/ }), -/* 365 */ +/* 366 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(303); +const utils = __webpack_require__(304); class Matcher { constructor(_patterns, _settings, _micromatchOptions) { this._patterns = _patterns; @@ -45924,13 +45969,13 @@ exports.default = Matcher; /***/ }), -/* 366 */ +/* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(303); +const utils = __webpack_require__(304); class EntryFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -45991,13 +46036,13 @@ exports.default = EntryFilter; /***/ }), -/* 367 */ +/* 368 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(303); +const utils = __webpack_require__(304); class ErrorFilter { constructor(_settings) { this._settings = _settings; @@ -46013,13 +46058,13 @@ exports.default = ErrorFilter; /***/ }), -/* 368 */ +/* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(303); +const utils = __webpack_require__(304); class EntryTransformer { constructor(_settings) { this._settings = _settings; @@ -46046,15 +46091,15 @@ exports.default = EntryTransformer; /***/ }), -/* 369 */ +/* 370 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(138); -const stream_2 = __webpack_require__(333); -const provider_1 = __webpack_require__(362); +const stream_2 = __webpack_require__(334); +const provider_1 = __webpack_require__(363); class ProviderStream extends provider_1.default { constructor() { super(...arguments); @@ -46084,14 +46129,14 @@ exports.default = ProviderStream; /***/ }), -/* 370 */ +/* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(371); -const provider_1 = __webpack_require__(362); +const sync_1 = __webpack_require__(372); +const provider_1 = __webpack_require__(363); class ProviderSync extends provider_1.default { constructor() { super(...arguments); @@ -46114,15 +46159,15 @@ exports.default = ProviderSync; /***/ }), -/* 371 */ +/* 372 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsStat = __webpack_require__(334); -const fsWalk = __webpack_require__(339); -const reader_1 = __webpack_require__(361); +const fsStat = __webpack_require__(335); +const fsWalk = __webpack_require__(340); +const reader_1 = __webpack_require__(362); class ReaderSync extends reader_1.default { constructor() { super(...arguments); @@ -46164,7 +46209,7 @@ exports.default = ReaderSync; /***/ }), -/* 372 */ +/* 373 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46228,13 +46273,13 @@ exports.default = Settings; /***/ }), -/* 373 */ +/* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(374); +const pathType = __webpack_require__(375); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -46310,7 +46355,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 374 */ +/* 375 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46360,7 +46405,7 @@ exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 375 */ +/* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46368,9 +46413,9 @@ exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); const {promisify} = __webpack_require__(112); const fs = __webpack_require__(134); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(301); -const gitIgnore = __webpack_require__(376); -const slash = __webpack_require__(377); +const fastGlob = __webpack_require__(302); +const gitIgnore = __webpack_require__(377); +const slash = __webpack_require__(378); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -46487,7 +46532,7 @@ module.exports.sync = options => { /***/ }), -/* 376 */ +/* 377 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -47096,7 +47141,7 @@ if ( /***/ }), -/* 377 */ +/* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47114,7 +47159,7 @@ module.exports = path => { /***/ }), -/* 378 */ +/* 379 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47167,7 +47212,7 @@ module.exports = { /***/ }), -/* 379 */ +/* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47189,7 +47234,7 @@ module.exports = path_ => { /***/ }), -/* 380 */ +/* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47208,7 +47253,7 @@ module.exports = (childPath, parentPath) => { /***/ }), -/* 381 */ +/* 382 */ /***/ (function(module, exports, __webpack_require__) { const assert = __webpack_require__(140) @@ -47216,7 +47261,7 @@ const path = __webpack_require__(4) const fs = __webpack_require__(134) let glob = undefined try { - glob = __webpack_require__(147) + glob = __webpack_require__(148) } catch (_err) { // treat glob as optional. } @@ -47574,12 +47619,12 @@ rimraf.sync = rimrafSync /***/ }), -/* 382 */ +/* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const AggregateError = __webpack_require__(383); +const AggregateError = __webpack_require__(384); module.exports = async ( iterable, @@ -47662,13 +47707,13 @@ module.exports = async ( /***/ }), -/* 383 */ +/* 384 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const indentString = __webpack_require__(384); -const cleanStack = __webpack_require__(385); +const indentString = __webpack_require__(385); +const cleanStack = __webpack_require__(386); const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ''); @@ -47716,7 +47761,7 @@ module.exports = AggregateError; /***/ }), -/* 384 */ +/* 385 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47758,7 +47803,7 @@ module.exports = (string, count = 1, options) => { /***/ }), -/* 385 */ +/* 386 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47805,20 +47850,20 @@ module.exports = (stack, options) => { /***/ }), -/* 386 */ +/* 387 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readline = __webpack_require__(387); -const chalk = __webpack_require__(388); -const cliCursor = __webpack_require__(391); -const cliSpinners = __webpack_require__(393); -const logSymbols = __webpack_require__(395); -const stripAnsi = __webpack_require__(401); -const wcwidth = __webpack_require__(403); -const isInteractive = __webpack_require__(407); -const MuteStream = __webpack_require__(408); +const readline = __webpack_require__(388); +const chalk = __webpack_require__(389); +const cliCursor = __webpack_require__(392); +const cliSpinners = __webpack_require__(394); +const logSymbols = __webpack_require__(396); +const stripAnsi = __webpack_require__(402); +const wcwidth = __webpack_require__(404); +const isInteractive = __webpack_require__(408); +const MuteStream = __webpack_require__(409); const TEXT = Symbol('text'); const PREFIX_TEXT = Symbol('prefixText'); @@ -48171,13 +48216,13 @@ module.exports.promise = (action, options) => { /***/ }), -/* 387 */ +/* 388 */ /***/ (function(module, exports) { module.exports = require("readline"); /***/ }), -/* 388 */ +/* 389 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48187,7 +48232,7 @@ const {stdout: stdoutColor, stderr: stderrColor} = __webpack_require__(120); const { stringReplaceAll, stringEncaseCRLFWithFirstIndex -} = __webpack_require__(389); +} = __webpack_require__(390); // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = [ @@ -48388,7 +48433,7 @@ const chalkTag = (chalk, ...strings) => { } if (template === undefined) { - template = __webpack_require__(390); + template = __webpack_require__(391); } return template(chalk, parts.join('')); @@ -48417,7 +48462,7 @@ module.exports = chalk; /***/ }), -/* 389 */ +/* 390 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48463,7 +48508,7 @@ module.exports = { /***/ }), -/* 390 */ +/* 391 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48604,12 +48649,12 @@ module.exports = (chalk, temporary) => { /***/ }), -/* 391 */ +/* 392 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const restoreCursor = __webpack_require__(392); +const restoreCursor = __webpack_require__(393); let isHidden = false; @@ -48646,13 +48691,13 @@ exports.toggle = (force, writableStream) => { /***/ }), -/* 392 */ +/* 393 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const onetime = __webpack_require__(254); -const signalExit = __webpack_require__(227); +const onetime = __webpack_require__(255); +const signalExit = __webpack_require__(228); module.exports = onetime(() => { signalExit(() => { @@ -48662,13 +48707,13 @@ module.exports = onetime(() => { /***/ }), -/* 393 */ +/* 394 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const spinners = Object.assign({}, __webpack_require__(394)); // eslint-disable-line import/extensions +const spinners = Object.assign({}, __webpack_require__(395)); // eslint-disable-line import/extensions const spinnersList = Object.keys(spinners); @@ -48684,18 +48729,18 @@ module.exports = spinners; /***/ }), -/* 394 */ +/* 395 */ /***/ (function(module) { module.exports = JSON.parse("{\"dots\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠹\",\"⠸\",\"⠼\",\"⠴\",\"⠦\",\"⠧\",\"⠇\",\"⠏\"]},\"dots2\":{\"interval\":80,\"frames\":[\"⣾\",\"⣽\",\"⣻\",\"⢿\",\"⡿\",\"⣟\",\"⣯\",\"⣷\"]},\"dots3\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠞\",\"⠖\",\"⠦\",\"⠴\",\"⠲\",\"⠳\",\"⠓\"]},\"dots4\":{\"interval\":80,\"frames\":[\"⠄\",\"⠆\",\"⠇\",\"⠋\",\"⠙\",\"⠸\",\"⠰\",\"⠠\",\"⠰\",\"⠸\",\"⠙\",\"⠋\",\"⠇\",\"⠆\"]},\"dots5\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\"]},\"dots6\":{\"interval\":80,\"frames\":[\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠴\",\"⠲\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠚\",\"⠙\",\"⠉\",\"⠁\"]},\"dots7\":{\"interval\":80,\"frames\":[\"⠈\",\"⠉\",\"⠋\",\"⠓\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠖\",\"⠦\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\"]},\"dots8\":{\"interval\":80,\"frames\":[\"⠁\",\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\",\"⠈\"]},\"dots9\":{\"interval\":80,\"frames\":[\"⢹\",\"⢺\",\"⢼\",\"⣸\",\"⣇\",\"⡧\",\"⡗\",\"⡏\"]},\"dots10\":{\"interval\":80,\"frames\":[\"⢄\",\"⢂\",\"⢁\",\"⡁\",\"⡈\",\"⡐\",\"⡠\"]},\"dots11\":{\"interval\":100,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⡀\",\"⢀\",\"⠠\",\"⠐\",\"⠈\"]},\"dots12\":{\"interval\":80,\"frames\":[\"⢀⠀\",\"⡀⠀\",\"⠄⠀\",\"⢂⠀\",\"⡂⠀\",\"⠅⠀\",\"⢃⠀\",\"⡃⠀\",\"⠍⠀\",\"⢋⠀\",\"⡋⠀\",\"⠍⠁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⢈⠩\",\"⡀⢙\",\"⠄⡙\",\"⢂⠩\",\"⡂⢘\",\"⠅⡘\",\"⢃⠨\",\"⡃⢐\",\"⠍⡐\",\"⢋⠠\",\"⡋⢀\",\"⠍⡁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⠈⠩\",\"⠀⢙\",\"⠀⡙\",\"⠀⠩\",\"⠀⢘\",\"⠀⡘\",\"⠀⠨\",\"⠀⢐\",\"⠀⡐\",\"⠀⠠\",\"⠀⢀\",\"⠀⡀\"]},\"dots8Bit\":{\"interval\":80,\"frames\":[\"⠀\",\"⠁\",\"⠂\",\"⠃\",\"⠄\",\"⠅\",\"⠆\",\"⠇\",\"⡀\",\"⡁\",\"⡂\",\"⡃\",\"⡄\",\"⡅\",\"⡆\",\"⡇\",\"⠈\",\"⠉\",\"⠊\",\"⠋\",\"⠌\",\"⠍\",\"⠎\",\"⠏\",\"⡈\",\"⡉\",\"⡊\",\"⡋\",\"⡌\",\"⡍\",\"⡎\",\"⡏\",\"⠐\",\"⠑\",\"⠒\",\"⠓\",\"⠔\",\"⠕\",\"⠖\",\"⠗\",\"⡐\",\"⡑\",\"⡒\",\"⡓\",\"⡔\",\"⡕\",\"⡖\",\"⡗\",\"⠘\",\"⠙\",\"⠚\",\"⠛\",\"⠜\",\"⠝\",\"⠞\",\"⠟\",\"⡘\",\"⡙\",\"⡚\",\"⡛\",\"⡜\",\"⡝\",\"⡞\",\"⡟\",\"⠠\",\"⠡\",\"⠢\",\"⠣\",\"⠤\",\"⠥\",\"⠦\",\"⠧\",\"⡠\",\"⡡\",\"⡢\",\"⡣\",\"⡤\",\"⡥\",\"⡦\",\"⡧\",\"⠨\",\"⠩\",\"⠪\",\"⠫\",\"⠬\",\"⠭\",\"⠮\",\"⠯\",\"⡨\",\"⡩\",\"⡪\",\"⡫\",\"⡬\",\"⡭\",\"⡮\",\"⡯\",\"⠰\",\"⠱\",\"⠲\",\"⠳\",\"⠴\",\"⠵\",\"⠶\",\"⠷\",\"⡰\",\"⡱\",\"⡲\",\"⡳\",\"⡴\",\"⡵\",\"⡶\",\"⡷\",\"⠸\",\"⠹\",\"⠺\",\"⠻\",\"⠼\",\"⠽\",\"⠾\",\"⠿\",\"⡸\",\"⡹\",\"⡺\",\"⡻\",\"⡼\",\"⡽\",\"⡾\",\"⡿\",\"⢀\",\"⢁\",\"⢂\",\"⢃\",\"⢄\",\"⢅\",\"⢆\",\"⢇\",\"⣀\",\"⣁\",\"⣂\",\"⣃\",\"⣄\",\"⣅\",\"⣆\",\"⣇\",\"⢈\",\"⢉\",\"⢊\",\"⢋\",\"⢌\",\"⢍\",\"⢎\",\"⢏\",\"⣈\",\"⣉\",\"⣊\",\"⣋\",\"⣌\",\"⣍\",\"⣎\",\"⣏\",\"⢐\",\"⢑\",\"⢒\",\"⢓\",\"⢔\",\"⢕\",\"⢖\",\"⢗\",\"⣐\",\"⣑\",\"⣒\",\"⣓\",\"⣔\",\"⣕\",\"⣖\",\"⣗\",\"⢘\",\"⢙\",\"⢚\",\"⢛\",\"⢜\",\"⢝\",\"⢞\",\"⢟\",\"⣘\",\"⣙\",\"⣚\",\"⣛\",\"⣜\",\"⣝\",\"⣞\",\"⣟\",\"⢠\",\"⢡\",\"⢢\",\"⢣\",\"⢤\",\"⢥\",\"⢦\",\"⢧\",\"⣠\",\"⣡\",\"⣢\",\"⣣\",\"⣤\",\"⣥\",\"⣦\",\"⣧\",\"⢨\",\"⢩\",\"⢪\",\"⢫\",\"⢬\",\"⢭\",\"⢮\",\"⢯\",\"⣨\",\"⣩\",\"⣪\",\"⣫\",\"⣬\",\"⣭\",\"⣮\",\"⣯\",\"⢰\",\"⢱\",\"⢲\",\"⢳\",\"⢴\",\"⢵\",\"⢶\",\"⢷\",\"⣰\",\"⣱\",\"⣲\",\"⣳\",\"⣴\",\"⣵\",\"⣶\",\"⣷\",\"⢸\",\"⢹\",\"⢺\",\"⢻\",\"⢼\",\"⢽\",\"⢾\",\"⢿\",\"⣸\",\"⣹\",\"⣺\",\"⣻\",\"⣼\",\"⣽\",\"⣾\",\"⣿\"]},\"line\":{\"interval\":130,\"frames\":[\"-\",\"\\\\\",\"|\",\"/\"]},\"line2\":{\"interval\":100,\"frames\":[\"⠂\",\"-\",\"–\",\"—\",\"–\",\"-\"]},\"pipe\":{\"interval\":100,\"frames\":[\"┤\",\"┘\",\"┴\",\"└\",\"├\",\"┌\",\"┬\",\"┐\"]},\"simpleDots\":{\"interval\":400,\"frames\":[\". \",\".. \",\"...\",\" \"]},\"simpleDotsScrolling\":{\"interval\":200,\"frames\":[\". \",\".. \",\"...\",\" ..\",\" .\",\" \"]},\"star\":{\"interval\":70,\"frames\":[\"✶\",\"✸\",\"✹\",\"✺\",\"✹\",\"✷\"]},\"star2\":{\"interval\":80,\"frames\":[\"+\",\"x\",\"*\"]},\"flip\":{\"interval\":70,\"frames\":[\"_\",\"_\",\"_\",\"-\",\"`\",\"`\",\"'\",\"´\",\"-\",\"_\",\"_\",\"_\"]},\"hamburger\":{\"interval\":100,\"frames\":[\"☱\",\"☲\",\"☴\"]},\"growVertical\":{\"interval\":120,\"frames\":[\"▁\",\"▃\",\"▄\",\"▅\",\"▆\",\"▇\",\"▆\",\"▅\",\"▄\",\"▃\"]},\"growHorizontal\":{\"interval\":120,\"frames\":[\"▏\",\"▎\",\"▍\",\"▌\",\"▋\",\"▊\",\"▉\",\"▊\",\"▋\",\"▌\",\"▍\",\"▎\"]},\"balloon\":{\"interval\":140,\"frames\":[\" \",\".\",\"o\",\"O\",\"@\",\"*\",\" \"]},\"balloon2\":{\"interval\":120,\"frames\":[\".\",\"o\",\"O\",\"°\",\"O\",\"o\",\".\"]},\"noise\":{\"interval\":100,\"frames\":[\"▓\",\"▒\",\"░\"]},\"bounce\":{\"interval\":120,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⠂\"]},\"boxBounce\":{\"interval\":120,\"frames\":[\"▖\",\"▘\",\"▝\",\"▗\"]},\"boxBounce2\":{\"interval\":100,\"frames\":[\"▌\",\"▀\",\"▐\",\"▄\"]},\"triangle\":{\"interval\":50,\"frames\":[\"◢\",\"◣\",\"◤\",\"◥\"]},\"arc\":{\"interval\":100,\"frames\":[\"◜\",\"◠\",\"◝\",\"◞\",\"◡\",\"◟\"]},\"circle\":{\"interval\":120,\"frames\":[\"◡\",\"⊙\",\"◠\"]},\"squareCorners\":{\"interval\":180,\"frames\":[\"◰\",\"◳\",\"◲\",\"◱\"]},\"circleQuarters\":{\"interval\":120,\"frames\":[\"◴\",\"◷\",\"◶\",\"◵\"]},\"circleHalves\":{\"interval\":50,\"frames\":[\"◐\",\"◓\",\"◑\",\"◒\"]},\"squish\":{\"interval\":100,\"frames\":[\"╫\",\"╪\"]},\"toggle\":{\"interval\":250,\"frames\":[\"⊶\",\"⊷\"]},\"toggle2\":{\"interval\":80,\"frames\":[\"▫\",\"▪\"]},\"toggle3\":{\"interval\":120,\"frames\":[\"□\",\"■\"]},\"toggle4\":{\"interval\":100,\"frames\":[\"■\",\"□\",\"▪\",\"▫\"]},\"toggle5\":{\"interval\":100,\"frames\":[\"▮\",\"▯\"]},\"toggle6\":{\"interval\":300,\"frames\":[\"ဝ\",\"၀\"]},\"toggle7\":{\"interval\":80,\"frames\":[\"⦾\",\"⦿\"]},\"toggle8\":{\"interval\":100,\"frames\":[\"◍\",\"◌\"]},\"toggle9\":{\"interval\":100,\"frames\":[\"◉\",\"◎\"]},\"toggle10\":{\"interval\":100,\"frames\":[\"㊂\",\"㊀\",\"㊁\"]},\"toggle11\":{\"interval\":50,\"frames\":[\"⧇\",\"⧆\"]},\"toggle12\":{\"interval\":120,\"frames\":[\"☗\",\"☖\"]},\"toggle13\":{\"interval\":80,\"frames\":[\"=\",\"*\",\"-\"]},\"arrow\":{\"interval\":100,\"frames\":[\"←\",\"↖\",\"↑\",\"↗\",\"→\",\"↘\",\"↓\",\"↙\"]},\"arrow2\":{\"interval\":80,\"frames\":[\"⬆️ \",\"↗️ \",\"➡️ \",\"↘️ \",\"⬇️ \",\"↙️ \",\"⬅️ \",\"↖️ \"]},\"arrow3\":{\"interval\":120,\"frames\":[\"▹▹▹▹▹\",\"▸▹▹▹▹\",\"▹▸▹▹▹\",\"▹▹▸▹▹\",\"▹▹▹▸▹\",\"▹▹▹▹▸\"]},\"bouncingBar\":{\"interval\":80,\"frames\":[\"[ ]\",\"[= ]\",\"[== ]\",\"[=== ]\",\"[ ===]\",\"[ ==]\",\"[ =]\",\"[ ]\",\"[ =]\",\"[ ==]\",\"[ ===]\",\"[====]\",\"[=== ]\",\"[== ]\",\"[= ]\"]},\"bouncingBall\":{\"interval\":80,\"frames\":[\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ●)\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"(● )\"]},\"smiley\":{\"interval\":200,\"frames\":[\"😄 \",\"😝 \"]},\"monkey\":{\"interval\":300,\"frames\":[\"🙈 \",\"🙈 \",\"🙉 \",\"🙊 \"]},\"hearts\":{\"interval\":100,\"frames\":[\"💛 \",\"💙 \",\"💜 \",\"💚 \",\"❤️ \"]},\"clock\":{\"interval\":100,\"frames\":[\"🕛 \",\"🕐 \",\"🕑 \",\"🕒 \",\"🕓 \",\"🕔 \",\"🕕 \",\"🕖 \",\"🕗 \",\"🕘 \",\"🕙 \",\"🕚 \"]},\"earth\":{\"interval\":180,\"frames\":[\"🌍 \",\"🌎 \",\"🌏 \"]},\"material\":{\"interval\":17,\"frames\":[\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███████▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"██████████▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"█████████████▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁██████████████▁▁▁▁\",\"▁▁▁██████████████▁▁▁\",\"▁▁▁▁█████████████▁▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁▁█████████████▁▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁▁███████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁▁█████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"]},\"moon\":{\"interval\":80,\"frames\":[\"🌑 \",\"🌒 \",\"🌓 \",\"🌔 \",\"🌕 \",\"🌖 \",\"🌗 \",\"🌘 \"]},\"runner\":{\"interval\":140,\"frames\":[\"🚶 \",\"🏃 \"]},\"pong\":{\"interval\":80,\"frames\":[\"▐⠂ ▌\",\"▐⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂▌\",\"▐ ⠠▌\",\"▐ ⡀▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐⠠ ▌\"]},\"shark\":{\"interval\":120,\"frames\":[\"▐|\\\\____________▌\",\"▐_|\\\\___________▌\",\"▐__|\\\\__________▌\",\"▐___|\\\\_________▌\",\"▐____|\\\\________▌\",\"▐_____|\\\\_______▌\",\"▐______|\\\\______▌\",\"▐_______|\\\\_____▌\",\"▐________|\\\\____▌\",\"▐_________|\\\\___▌\",\"▐__________|\\\\__▌\",\"▐___________|\\\\_▌\",\"▐____________|\\\\▌\",\"▐____________/|▌\",\"▐___________/|_▌\",\"▐__________/|__▌\",\"▐_________/|___▌\",\"▐________/|____▌\",\"▐_______/|_____▌\",\"▐______/|______▌\",\"▐_____/|_______▌\",\"▐____/|________▌\",\"▐___/|_________▌\",\"▐__/|__________▌\",\"▐_/|___________▌\",\"▐/|____________▌\"]},\"dqpb\":{\"interval\":100,\"frames\":[\"d\",\"q\",\"p\",\"b\"]},\"weather\":{\"interval\":100,\"frames\":[\"☀️ \",\"☀️ \",\"☀️ \",\"🌤 \",\"⛅️ \",\"🌥 \",\"☁️ \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"⛈ \",\"🌨 \",\"🌧 \",\"🌨 \",\"☁️ \",\"🌥 \",\"⛅️ \",\"🌤 \",\"☀️ \",\"☀️ \"]},\"christmas\":{\"interval\":400,\"frames\":[\"🌲\",\"🎄\"]},\"grenade\":{\"interval\":80,\"frames\":[\"، \",\"′ \",\" ´ \",\" ‾ \",\" ⸌\",\" ⸊\",\" |\",\" ⁎\",\" ⁕\",\" ෴ \",\" ⁓\",\" \",\" \",\" \"]},\"point\":{\"interval\":125,\"frames\":[\"∙∙∙\",\"●∙∙\",\"∙●∙\",\"∙∙●\",\"∙∙∙\"]},\"layer\":{\"interval\":150,\"frames\":[\"-\",\"=\",\"≡\"]},\"betaWave\":{\"interval\":80,\"frames\":[\"ρββββββ\",\"βρβββββ\",\"ββρββββ\",\"βββρβββ\",\"ββββρββ\",\"βββββρβ\",\"ββββββρ\"]},\"fingerDance\":{\"interval\":160,\"frames\":[\"🤘 \",\"🤟 \",\"🖖 \",\"✋ \",\"🤚 \",\"👆 \"]},\"fistBump\":{\"interval\":80,\"frames\":[\"🤜 🤛 \",\"🤜 🤛 \",\"🤜 🤛 \",\" 🤜 🤛 \",\" 🤜🤛 \",\" 🤜✨🤛 \",\"🤜 ✨ 🤛 \"]},\"soccerHeader\":{\"interval\":80,\"frames\":[\" 🧑⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \",\"🧑 ⚽️ 🧑 \"]},\"mindblown\":{\"interval\":160,\"frames\":[\"😐 \",\"😐 \",\"😮 \",\"😮 \",\"😦 \",\"😦 \",\"😧 \",\"😧 \",\"🤯 \",\"💥 \",\"✨ \",\" \",\" \",\" \"]},\"speaker\":{\"interval\":160,\"frames\":[\"🔈 \",\"🔉 \",\"🔊 \",\"🔉 \"]},\"orangePulse\":{\"interval\":100,\"frames\":[\"🔸 \",\"🔶 \",\"🟠 \",\"🟠 \",\"🔶 \"]},\"bluePulse\":{\"interval\":100,\"frames\":[\"🔹 \",\"🔷 \",\"🔵 \",\"🔵 \",\"🔷 \"]},\"orangeBluePulse\":{\"interval\":100,\"frames\":[\"🔸 \",\"🔶 \",\"🟠 \",\"🟠 \",\"🔶 \",\"🔹 \",\"🔷 \",\"🔵 \",\"🔵 \",\"🔷 \"]},\"timeTravel\":{\"interval\":100,\"frames\":[\"🕛 \",\"🕚 \",\"🕙 \",\"🕘 \",\"🕗 \",\"🕖 \",\"🕕 \",\"🕔 \",\"🕓 \",\"🕒 \",\"🕑 \",\"🕐 \"]},\"aesthetic\":{\"interval\":80,\"frames\":[\"▰▱▱▱▱▱▱\",\"▰▰▱▱▱▱▱\",\"▰▰▰▱▱▱▱\",\"▰▰▰▰▱▱▱\",\"▰▰▰▰▰▱▱\",\"▰▰▰▰▰▰▱\",\"▰▰▰▰▰▰▰\",\"▰▱▱▱▱▱▱\"]}}"); /***/ }), -/* 395 */ +/* 396 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const chalk = __webpack_require__(396); +const chalk = __webpack_require__(397); const isSupported = process.platform !== 'win32' || process.env.CI || process.env.TERM === 'xterm-256color'; @@ -48717,16 +48762,16 @@ module.exports = isSupported ? main : fallbacks; /***/ }), -/* 396 */ +/* 397 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const escapeStringRegexp = __webpack_require__(179); -const ansiStyles = __webpack_require__(397); -const stdoutColor = __webpack_require__(398).stdout; +const escapeStringRegexp = __webpack_require__(180); +const ansiStyles = __webpack_require__(398); +const stdoutColor = __webpack_require__(399).stdout; -const template = __webpack_require__(400); +const template = __webpack_require__(401); const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); @@ -48952,12 +48997,12 @@ module.exports.default = module.exports; // For TypeScript /***/ }), -/* 397 */ +/* 398 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(module) { -const colorConvert = __webpack_require__(181); +const colorConvert = __webpack_require__(182); const wrapAnsi16 = (fn, offset) => function () { const code = fn.apply(colorConvert, arguments); @@ -49125,13 +49170,13 @@ Object.defineProperty(module, 'exports', { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(115)(module))) /***/ }), -/* 398 */ +/* 399 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const os = __webpack_require__(121); -const hasFlag = __webpack_require__(399); +const hasFlag = __webpack_require__(400); const env = process.env; @@ -49263,7 +49308,7 @@ module.exports = { /***/ }), -/* 399 */ +/* 400 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49278,7 +49323,7 @@ module.exports = (flag, argv) => { /***/ }), -/* 400 */ +/* 401 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49413,18 +49458,18 @@ module.exports = (chalk, tmp) => { /***/ }), -/* 401 */ +/* 402 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const ansiRegex = __webpack_require__(402); +const ansiRegex = __webpack_require__(403); module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; /***/ }), -/* 402 */ +/* 403 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49441,14 +49486,14 @@ module.exports = ({onlyFirst = false} = {}) => { /***/ }), -/* 403 */ +/* 404 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var defaults = __webpack_require__(404) -var combining = __webpack_require__(406) +var defaults = __webpack_require__(405) +var combining = __webpack_require__(407) var DEFAULTS = { nul: 0, @@ -49547,10 +49592,10 @@ function bisearch(ucs) { /***/ }), -/* 404 */ +/* 405 */ /***/ (function(module, exports, __webpack_require__) { -var clone = __webpack_require__(405); +var clone = __webpack_require__(406); module.exports = function(options, defaults) { options = options || {}; @@ -49565,7 +49610,7 @@ module.exports = function(options, defaults) { }; /***/ }), -/* 405 */ +/* 406 */ /***/ (function(module, exports, __webpack_require__) { var clone = (function() { @@ -49737,7 +49782,7 @@ if ( true && module.exports) { /***/ }), -/* 406 */ +/* 407 */ /***/ (function(module, exports) { module.exports = [ @@ -49793,7 +49838,7 @@ module.exports = [ /***/ }), -/* 407 */ +/* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49809,7 +49854,7 @@ module.exports = ({stream = process.stdout} = {}) => { /***/ }), -/* 408 */ +/* 409 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(138) @@ -49960,7 +50005,7 @@ MuteStream.prototype.close = proxy('close') /***/ }), -/* 409 */ +/* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49971,13 +50016,13 @@ Object.defineProperty(exports, "__esModule", { }); exports.RunCommand = void 0; -var _errors = __webpack_require__(163); +var _errors = __webpack_require__(164); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _parallelize = __webpack_require__(145); +var _parallelize = __webpack_require__(146); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); /* * SPDX-License-Identifier: Apache-2.0 @@ -50040,7 +50085,7 @@ const RunCommand = { exports.RunCommand = RunCommand; /***/ }), -/* 410 */ +/* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -50051,15 +50096,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.WatchCommand = void 0; -var _errors = __webpack_require__(163); +var _errors = __webpack_require__(164); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _parallelize = __webpack_require__(145); +var _parallelize = __webpack_require__(146); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); -var _watch = __webpack_require__(411); +var _watch = __webpack_require__(412); /* * SPDX-License-Identifier: Apache-2.0 @@ -50155,7 +50200,7 @@ const WatchCommand = { exports.WatchCommand = WatchCommand; /***/ }), -/* 411 */ +/* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -50168,7 +50213,7 @@ exports.waitUntilWatchIsReady = waitUntilWatchIsReady; var Rx = _interopRequireWildcard(__webpack_require__(8)); -var _operators = __webpack_require__(412); +var _operators = __webpack_require__(413); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } @@ -50249,141 +50294,141 @@ function waitUntilWatchIsReady(stream, opts = {}) { } /***/ }), -/* 412 */ +/* 413 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(413); +/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(414); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); -/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(414); +/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(415); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); -/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(415); +/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(416); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); -/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(416); +/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(417); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); -/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(417); +/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(418); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); -/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(418); +/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(419); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); -/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(419); +/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(420); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); -/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(420); +/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(421); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); -/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(421); +/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(422); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); -/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(422); +/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(423); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); -/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(423); +/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(424); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); /* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(80); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); -/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(424); +/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(425); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); -/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(425); +/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(426); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); -/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(426); +/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(427); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); -/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(427); +/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(428); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); -/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(428); +/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(429); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); -/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(429); +/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(430); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); -/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(430); +/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(431); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); -/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(432); +/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(433); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); -/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(433); +/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(434); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); -/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(434); +/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(435); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); -/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(435); +/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(436); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); -/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(436); +/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(437); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); -/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(437); +/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(438); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); -/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(440); +/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(441); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); -/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(441); +/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(442); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); -/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(442); +/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(443); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); -/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(443); +/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(444); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); -/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(444); +/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(445); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); /* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(105); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); -/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(445); +/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(446); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); -/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(446); +/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(447); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); -/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(447); +/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(448); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); -/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(448); +/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(449); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); /* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(31); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); -/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(449); +/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(450); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); -/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(450); +/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(451); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); -/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(451); +/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(452); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); /* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(66); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); -/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(453); +/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(454); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); -/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(454); +/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(455); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); -/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(455); +/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(456); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); -/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(458); +/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(459); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); /* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(81); @@ -50394,175 +50439,175 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["flatMap"]; }); -/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(459); +/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(460); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); -/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(460); +/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(461); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); -/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(461); +/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(462); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); -/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(462); +/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(463); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); /* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(41); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); -/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(463); +/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(464); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); -/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(464); +/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(465); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); -/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(465); +/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(466); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); -/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(466); +/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(467); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); -/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(467); +/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(468); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); -/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(468); +/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(469); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); -/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(469); +/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(470); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); -/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(470); +/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(471); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); -/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(471); +/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(472); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); -/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(456); +/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(457); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); -/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(472); +/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(473); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); -/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(473); +/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(474); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); -/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(474); +/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(475); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); -/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(475); +/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(476); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); /* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(30); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); -/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(476); +/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(477); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); -/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(477); +/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(478); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); -/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(457); +/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(458); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); -/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(478); +/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(479); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); -/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(479); +/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(480); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); -/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(480); +/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(481); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); -/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(481); +/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(482); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); -/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(482); +/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(483); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); -/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(483); +/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(484); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); -/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(484); +/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(485); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); -/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(485); +/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(486); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); -/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(486); +/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(487); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); -/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(487); +/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(488); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); -/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(489); +/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(490); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); -/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(490); +/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(491); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); -/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(491); +/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(492); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); -/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(439); +/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(440); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); -/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(452); +/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(453); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); -/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(492); +/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(493); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); -/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(493); +/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(494); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); -/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(494); +/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(495); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); -/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(495); +/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(496); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); -/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(496); +/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(497); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); -/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(438); +/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(439); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); -/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(497); +/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(498); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); -/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(498); +/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(499); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); -/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(499); +/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(500); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); -/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(500); +/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(501); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); -/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(501); +/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(502); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); -/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(502); +/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(503); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); -/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(503); +/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(504); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); -/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(504); +/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(505); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); -/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(505); +/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(506); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); -/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(506); +/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(507); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); -/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(507); +/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(508); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); -/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(508); +/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(509); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); -/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(509); +/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(510); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ @@ -50673,7 +50718,7 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 413 */ +/* 414 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50752,14 +50797,14 @@ var AuditSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 414 */ +/* 415 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); -/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(413); +/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(414); /* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(108); /** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ @@ -50775,7 +50820,7 @@ function auditTime(duration, scheduler) { /***/ }), -/* 415 */ +/* 416 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50822,7 +50867,7 @@ var BufferSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 416 */ +/* 417 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50923,7 +50968,7 @@ var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 417 */ +/* 418 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51084,7 +51129,7 @@ function dispatchBufferClose(arg) { /***/ }), -/* 418 */ +/* 419 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51203,7 +51248,7 @@ var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 419 */ +/* 420 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51296,7 +51341,7 @@ var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 420 */ +/* 421 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51356,7 +51401,7 @@ var CatchSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 421 */ +/* 422 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51372,7 +51417,7 @@ function combineAll(project) { /***/ }), -/* 422 */ +/* 423 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51404,7 +51449,7 @@ function combineLatest() { /***/ }), -/* 423 */ +/* 424 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51424,7 +51469,7 @@ function concat() { /***/ }), -/* 424 */ +/* 425 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51440,13 +51485,13 @@ function concatMap(project, resultSelector) { /***/ }), -/* 425 */ +/* 426 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); -/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(424); +/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(425); /** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ function concatMapTo(innerObservable, resultSelector) { @@ -51456,7 +51501,7 @@ function concatMapTo(innerObservable, resultSelector) { /***/ }), -/* 426 */ +/* 427 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51521,7 +51566,7 @@ var CountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 427 */ +/* 428 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51606,7 +51651,7 @@ var DebounceSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 428 */ +/* 429 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51682,7 +51727,7 @@ function dispatchNext(subscriber) { /***/ }), -/* 429 */ +/* 430 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51732,7 +51777,7 @@ var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 430 */ +/* 431 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51740,7 +51785,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(431); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(432); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11); /* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ @@ -51839,7 +51884,7 @@ var DelayMessage = /*@__PURE__*/ (function () { /***/ }), -/* 431 */ +/* 432 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51853,7 +51898,7 @@ function isDate(value) { /***/ }), -/* 432 */ +/* 433 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51999,7 +52044,7 @@ var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 433 */ +/* 434 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52037,7 +52082,7 @@ var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 434 */ +/* 435 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52113,7 +52158,7 @@ var DistinctSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 435 */ +/* 436 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52184,13 +52229,13 @@ var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 436 */ +/* 437 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); -/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(435); +/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(436); /** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ function distinctUntilKeyChanged(key, compare) { @@ -52200,7 +52245,7 @@ function distinctUntilKeyChanged(key, compare) { /***/ }), -/* 437 */ +/* 438 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52208,9 +52253,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); /* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(438); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(429); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(439); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(439); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(430); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(440); /** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ @@ -52232,7 +52277,7 @@ function elementAt(index, defaultValue) { /***/ }), -/* 438 */ +/* 439 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52298,7 +52343,7 @@ function defaultErrorFactory() { /***/ }), -/* 439 */ +/* 440 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52360,7 +52405,7 @@ var TakeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 440 */ +/* 441 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52382,7 +52427,7 @@ function endWith() { /***/ }), -/* 441 */ +/* 442 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52444,7 +52489,7 @@ var EverySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 442 */ +/* 443 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52498,7 +52543,7 @@ var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 443 */ +/* 444 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52592,7 +52637,7 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 444 */ +/* 445 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52704,7 +52749,7 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 445 */ +/* 446 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52742,7 +52787,7 @@ var FinallySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 446 */ +/* 447 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52814,13 +52859,13 @@ var FindValueSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 447 */ +/* 448 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); -/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(446); +/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(447); /** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ function findIndex(predicate, thisArg) { @@ -52830,7 +52875,7 @@ function findIndex(predicate, thisArg) { /***/ }), -/* 448 */ +/* 449 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52838,9 +52883,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(439); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(429); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(438); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(440); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(430); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(439); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25); /** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -52857,7 +52902,7 @@ function first(predicate, defaultValue) { /***/ }), -/* 449 */ +/* 450 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52894,7 +52939,7 @@ var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 450 */ +/* 451 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52938,7 +52983,7 @@ var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 451 */ +/* 452 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52946,9 +52991,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(452); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(438); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(429); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(453); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(439); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(430); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25); /** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -52965,7 +53010,7 @@ function last(predicate, defaultValue) { /***/ }), -/* 452 */ +/* 453 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53042,7 +53087,7 @@ var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 453 */ +/* 454 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53081,7 +53126,7 @@ var MapToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 454 */ +/* 455 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53131,13 +53176,13 @@ var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 455 */ +/* 456 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(456); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(457); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function max(comparer) { @@ -53150,15 +53195,15 @@ function max(comparer) { /***/ }), -/* 456 */ +/* 457 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(457); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(452); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(429); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(458); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(453); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(430); /* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24); /** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ @@ -53179,7 +53224,7 @@ function reduce(accumulator, seed) { /***/ }), -/* 457 */ +/* 458 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53261,7 +53306,7 @@ var ScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 458 */ +/* 459 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53281,7 +53326,7 @@ function merge() { /***/ }), -/* 459 */ +/* 460 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53306,7 +53351,7 @@ function mergeMapTo(innerObservable, resultSelector, concurrent) { /***/ }), -/* 460 */ +/* 461 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53415,13 +53460,13 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 461 */ +/* 462 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(456); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(457); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function min(comparer) { @@ -53434,7 +53479,7 @@ function min(comparer) { /***/ }), -/* 462 */ +/* 463 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53483,7 +53528,7 @@ var MulticastOperator = /*@__PURE__*/ (function () { /***/ }), -/* 463 */ +/* 464 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53573,7 +53618,7 @@ var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 464 */ +/* 465 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53621,7 +53666,7 @@ var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 465 */ +/* 466 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53644,7 +53689,7 @@ function partition(predicate, thisArg) { /***/ }), -/* 466 */ +/* 467 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53684,14 +53729,14 @@ function plucker(props, length) { /***/ }), -/* 467 */ +/* 468 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(462); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(463); /** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ @@ -53704,14 +53749,14 @@ function publish(selector) { /***/ }), -/* 468 */ +/* 469 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); /* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(462); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(463); /** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ @@ -53722,14 +53767,14 @@ function publishBehavior(value) { /***/ }), -/* 469 */ +/* 470 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); /* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(462); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(463); /** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ @@ -53740,14 +53785,14 @@ function publishLast() { /***/ }), -/* 470 */ +/* 471 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); /* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(462); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(463); /** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ @@ -53763,7 +53808,7 @@ function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { /***/ }), -/* 471 */ +/* 472 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53790,7 +53835,7 @@ function race() { /***/ }), -/* 472 */ +/* 473 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53855,7 +53900,7 @@ var RepeatSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 473 */ +/* 474 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53949,7 +53994,7 @@ var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 474 */ +/* 475 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54002,7 +54047,7 @@ var RetrySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 475 */ +/* 476 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54088,7 +54133,7 @@ var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 476 */ +/* 477 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54143,7 +54188,7 @@ var SampleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 477 */ +/* 478 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54203,7 +54248,7 @@ function dispatchNotification(state) { /***/ }), -/* 478 */ +/* 479 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54326,13 +54371,13 @@ var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 479 */ +/* 480 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(462); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(463); /* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27); /** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ @@ -54349,7 +54394,7 @@ function share() { /***/ }), -/* 480 */ +/* 481 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54424,7 +54469,7 @@ function shareReplayOperator(_a) { /***/ }), -/* 481 */ +/* 482 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54504,7 +54549,7 @@ var SingleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 482 */ +/* 483 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54546,7 +54591,7 @@ var SkipSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 483 */ +/* 484 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54608,7 +54653,7 @@ var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 484 */ +/* 485 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54665,7 +54710,7 @@ var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 485 */ +/* 486 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54721,7 +54766,7 @@ var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 486 */ +/* 487 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54750,13 +54795,13 @@ function startWith() { /***/ }), -/* 487 */ +/* 488 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); -/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(488); +/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(489); /** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ function subscribeOn(scheduler, delay) { @@ -54781,7 +54826,7 @@ var SubscribeOnOperator = /*@__PURE__*/ (function () { /***/ }), -/* 488 */ +/* 489 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54845,13 +54890,13 @@ var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { /***/ }), -/* 489 */ +/* 490 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(490); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(491); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25); /** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ @@ -54863,7 +54908,7 @@ function switchAll() { /***/ }), -/* 490 */ +/* 491 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54951,13 +54996,13 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 491 */ +/* 492 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(490); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(491); /** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ function switchMapTo(innerObservable, resultSelector) { @@ -54967,7 +55012,7 @@ function switchMapTo(innerObservable, resultSelector) { /***/ }), -/* 492 */ +/* 493 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55015,7 +55060,7 @@ var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 493 */ +/* 494 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55083,7 +55128,7 @@ var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 494 */ +/* 495 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55171,7 +55216,7 @@ var TapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 495 */ +/* 496 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55273,7 +55318,7 @@ var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 496 */ +/* 497 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55282,7 +55327,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55); -/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(495); +/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(496); /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ @@ -55371,7 +55416,7 @@ function dispatchNext(arg) { /***/ }), -/* 497 */ +/* 498 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55379,7 +55424,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(457); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(458); /* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91); /* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66); /** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ @@ -55415,7 +55460,7 @@ var TimeInterval = /*@__PURE__*/ (function () { /***/ }), -/* 498 */ +/* 499 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55423,7 +55468,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); /* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64); -/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(499); +/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(500); /* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49); /** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ @@ -55440,7 +55485,7 @@ function timeout(due, scheduler) { /***/ }), -/* 499 */ +/* 500 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55448,7 +55493,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(431); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(432); /* harmony import */ var _innerSubscribe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_innerSubscribe PURE_IMPORTS_END */ @@ -55519,7 +55564,7 @@ var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 500 */ +/* 501 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55549,13 +55594,13 @@ var Timestamp = /*@__PURE__*/ (function () { /***/ }), -/* 501 */ +/* 502 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(456); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(457); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function toArrayReducer(arr, item, index) { @@ -55572,7 +55617,7 @@ function toArray() { /***/ }), -/* 502 */ +/* 503 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55650,7 +55695,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 503 */ +/* 504 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55740,7 +55785,7 @@ var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 504 */ +/* 505 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55910,7 +55955,7 @@ function dispatchWindowClose(state) { /***/ }), -/* 505 */ +/* 506 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56053,7 +56098,7 @@ var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 506 */ +/* 507 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56150,7 +56195,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 507 */ +/* 508 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56245,7 +56290,7 @@ var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 508 */ +/* 509 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56267,7 +56312,7 @@ function zip() { /***/ }), -/* 509 */ +/* 510 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56283,7 +56328,7 @@ function zipAll(project) { /***/ }), -/* 510 */ +/* 511 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56294,15 +56339,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.runCommand = runCommand; -var _errors = __webpack_require__(163); +var _errors = __webpack_require__(164); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); -var _projects_tree = __webpack_require__(289); +var _projects_tree = __webpack_require__(296); -var _opensearch_dashboards = __webpack_require__(511); +var _opensearch_dashboards = __webpack_require__(512); /* * SPDX-License-Identifier: Apache-2.0 @@ -56394,7 +56439,7 @@ function toArray(value) { } /***/ }), -/* 511 */ +/* 512 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56407,15 +56452,15 @@ exports.OpenSearchDashboards = void 0; var _path = _interopRequireDefault(__webpack_require__(4)); -var _multimatch = _interopRequireDefault(__webpack_require__(512)); +var _multimatch = _interopRequireDefault(__webpack_require__(513)); -var _isPathInside = _interopRequireDefault(__webpack_require__(380)); +var _isPathInside = _interopRequireDefault(__webpack_require__(381)); -var _yarn_lock = __webpack_require__(285); +var _yarn_lock = __webpack_require__(286); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); -var _config = __webpack_require__(282); +var _config = __webpack_require__(283); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -56545,15 +56590,15 @@ class OpenSearchDashboards { exports.OpenSearchDashboards = OpenSearchDashboards; /***/ }), -/* 512 */ +/* 513 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const minimatch = __webpack_require__(150); -const arrayUnion = __webpack_require__(299); -const arrayDiffer = __webpack_require__(513); -const arrify = __webpack_require__(514); +const minimatch = __webpack_require__(151); +const arrayUnion = __webpack_require__(300); +const arrayDiffer = __webpack_require__(514); +const arrify = __webpack_require__(515); module.exports = (list, patterns, options = {}) => { list = arrify(list); @@ -56577,7 +56622,7 @@ module.exports = (list, patterns, options = {}) => { /***/ }), -/* 513 */ +/* 514 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56592,7 +56637,7 @@ module.exports = arrayDiffer; /***/ }), -/* 514 */ +/* 515 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56622,7 +56667,7 @@ module.exports = arrify; /***/ }), -/* 515 */ +/* 516 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56638,10 +56683,10 @@ Object.defineProperty(exports, "buildProductionProjects", { } }); -var _build_production_projects = __webpack_require__(516); +var _build_production_projects = __webpack_require__(517); /***/ }), -/* 516 */ +/* 517 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56652,21 +56697,21 @@ Object.defineProperty(exports, "__esModule", { }); exports.buildProductionProjects = buildProductionProjects; -var _cpy = _interopRequireDefault(__webpack_require__(517)); +var _cpy = _interopRequireDefault(__webpack_require__(518)); -var _del = _interopRequireDefault(__webpack_require__(297)); +var _del = _interopRequireDefault(__webpack_require__(298)); var _path = __webpack_require__(4); -var _config = __webpack_require__(282); +var _config = __webpack_require__(283); var _fs = __webpack_require__(131); -var _log = __webpack_require__(144); +var _log = __webpack_require__(145); -var _package_json = __webpack_require__(165); +var _package_json = __webpack_require__(166); -var _projects = __webpack_require__(146); +var _projects = __webpack_require__(147); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -56796,22 +56841,22 @@ async function copyToBuild(project, opensearchDashboardsRoot, buildRoot) { } /***/ }), -/* 517 */ +/* 518 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const EventEmitter = __webpack_require__(156); +const EventEmitter = __webpack_require__(157); const path = __webpack_require__(4); const os = __webpack_require__(121); -const pMap = __webpack_require__(518); -const arrify = __webpack_require__(514); -const globby = __webpack_require__(519); -const hasGlob = __webpack_require__(702); -const cpFile = __webpack_require__(704); -const junk = __webpack_require__(714); -const pFilter = __webpack_require__(715); -const CpyError = __webpack_require__(717); +const pMap = __webpack_require__(519); +const arrify = __webpack_require__(515); +const globby = __webpack_require__(520); +const hasGlob = __webpack_require__(700); +const cpFile = __webpack_require__(702); +const junk = __webpack_require__(712); +const pFilter = __webpack_require__(713); +const CpyError = __webpack_require__(715); const defaultOptions = { ignoreJunk: true @@ -56962,12 +57007,12 @@ module.exports = (source, destination, { /***/ }), -/* 518 */ +/* 519 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const AggregateError = __webpack_require__(383); +const AggregateError = __webpack_require__(384); module.exports = async ( iterable, @@ -57050,17 +57095,17 @@ module.exports = async ( /***/ }), -/* 519 */ +/* 520 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const arrayUnion = __webpack_require__(520); -const glob = __webpack_require__(147); -const fastGlob = __webpack_require__(522); -const dirGlob = __webpack_require__(696); -const gitignore = __webpack_require__(699); +const arrayUnion = __webpack_require__(521); +const glob = __webpack_require__(148); +const fastGlob = __webpack_require__(523); +const dirGlob = __webpack_require__(694); +const gitignore = __webpack_require__(697); const DEFAULT_FILTER = () => false; @@ -57205,12 +57250,12 @@ module.exports.gitignore = gitignore; /***/ }), -/* 520 */ +/* 521 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var arrayUniq = __webpack_require__(521); +var arrayUniq = __webpack_require__(522); module.exports = function () { return arrayUniq([].concat.apply([], arguments)); @@ -57218,7 +57263,7 @@ module.exports = function () { /***/ }), -/* 521 */ +/* 522 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57287,10 +57332,10 @@ if ('Set' in global) { /***/ }), -/* 522 */ +/* 523 */ /***/ (function(module, exports, __webpack_require__) { -const pkg = __webpack_require__(523); +const pkg = __webpack_require__(524); module.exports = pkg.async; module.exports.default = pkg.async; @@ -57303,375 +57348,375 @@ module.exports.generateTasks = pkg.generateTasks; /***/ }), -/* 523 */ +/* 524 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var optionsManager = __webpack_require__(524); -var taskManager = __webpack_require__(525); -var reader_async_1 = __webpack_require__(667); -var reader_stream_1 = __webpack_require__(691); -var reader_sync_1 = __webpack_require__(692); -var arrayUtils = __webpack_require__(694); -var streamUtils = __webpack_require__(695); -/** - * Synchronous API. - */ -function sync(source, opts) { - assertPatternsInput(source); - var works = getWorks(source, reader_sync_1.default, opts); - return arrayUtils.flatten(works); -} -exports.sync = sync; -/** - * Asynchronous API. - */ -function async(source, opts) { - try { - assertPatternsInput(source); - } - catch (error) { - return Promise.reject(error); - } - var works = getWorks(source, reader_async_1.default, opts); - return Promise.all(works).then(arrayUtils.flatten); -} -exports.async = async; -/** - * Stream API. - */ -function stream(source, opts) { - assertPatternsInput(source); - var works = getWorks(source, reader_stream_1.default, opts); - return streamUtils.merge(works); -} -exports.stream = stream; -/** - * Return a set of tasks based on provided patterns. - */ -function generateTasks(source, opts) { - assertPatternsInput(source); - var patterns = [].concat(source); - var options = optionsManager.prepare(opts); - return taskManager.generate(patterns, options); -} -exports.generateTasks = generateTasks; -/** - * Returns a set of works based on provided tasks and class of the reader. - */ -function getWorks(source, _Reader, opts) { - var patterns = [].concat(source); - var options = optionsManager.prepare(opts); - var tasks = taskManager.generate(patterns, options); - var reader = new _Reader(options); - return tasks.map(reader.read, reader); -} -function assertPatternsInput(source) { - if ([].concat(source).every(isString)) { - return; - } - throw new TypeError('Patterns must be a string or an array of strings'); -} -function isString(source) { - /* tslint:disable-next-line strict-type-predicates */ - return typeof source === 'string'; -} + +Object.defineProperty(exports, "__esModule", { value: true }); +var optionsManager = __webpack_require__(525); +var taskManager = __webpack_require__(526); +var reader_async_1 = __webpack_require__(665); +var reader_stream_1 = __webpack_require__(689); +var reader_sync_1 = __webpack_require__(690); +var arrayUtils = __webpack_require__(692); +var streamUtils = __webpack_require__(693); +/** + * Synchronous API. + */ +function sync(source, opts) { + assertPatternsInput(source); + var works = getWorks(source, reader_sync_1.default, opts); + return arrayUtils.flatten(works); +} +exports.sync = sync; +/** + * Asynchronous API. + */ +function async(source, opts) { + try { + assertPatternsInput(source); + } + catch (error) { + return Promise.reject(error); + } + var works = getWorks(source, reader_async_1.default, opts); + return Promise.all(works).then(arrayUtils.flatten); +} +exports.async = async; +/** + * Stream API. + */ +function stream(source, opts) { + assertPatternsInput(source); + var works = getWorks(source, reader_stream_1.default, opts); + return streamUtils.merge(works); +} +exports.stream = stream; +/** + * Return a set of tasks based on provided patterns. + */ +function generateTasks(source, opts) { + assertPatternsInput(source); + var patterns = [].concat(source); + var options = optionsManager.prepare(opts); + return taskManager.generate(patterns, options); +} +exports.generateTasks = generateTasks; +/** + * Returns a set of works based on provided tasks and class of the reader. + */ +function getWorks(source, _Reader, opts) { + var patterns = [].concat(source); + var options = optionsManager.prepare(opts); + var tasks = taskManager.generate(patterns, options); + var reader = new _Reader(options); + return tasks.map(reader.read, reader); +} +function assertPatternsInput(source) { + if ([].concat(source).every(isString)) { + return; + } + throw new TypeError('Patterns must be a string or an array of strings'); +} +function isString(source) { + /* tslint:disable-next-line strict-type-predicates */ + return typeof source === 'string'; +} /***/ }), -/* 524 */ +/* 525 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -function prepare(options) { - var opts = __assign({ cwd: process.cwd(), deep: true, ignore: [], dot: false, stats: false, onlyFiles: true, onlyDirectories: false, followSymlinkedDirectories: true, unique: true, markDirectories: false, absolute: false, nobrace: false, brace: true, noglobstar: false, globstar: true, noext: false, extension: true, nocase: false, case: true, matchBase: false, transform: null }, options); - if (opts.onlyDirectories) { - opts.onlyFiles = false; - } - opts.brace = !opts.nobrace; - opts.globstar = !opts.noglobstar; - opts.extension = !opts.noext; - opts.case = !opts.nocase; - if (options) { - opts.brace = ('brace' in options ? options.brace : opts.brace); - opts.globstar = ('globstar' in options ? options.globstar : opts.globstar); - opts.extension = ('extension' in options ? options.extension : opts.extension); - opts.case = ('case' in options ? options.case : opts.case); - } - return opts; -} -exports.prepare = prepare; + +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +function prepare(options) { + var opts = __assign({ cwd: process.cwd(), deep: true, ignore: [], dot: false, stats: false, onlyFiles: true, onlyDirectories: false, followSymlinkedDirectories: true, unique: true, markDirectories: false, absolute: false, nobrace: false, brace: true, noglobstar: false, globstar: true, noext: false, extension: true, nocase: false, case: true, matchBase: false, transform: null }, options); + if (opts.onlyDirectories) { + opts.onlyFiles = false; + } + opts.brace = !opts.nobrace; + opts.globstar = !opts.noglobstar; + opts.extension = !opts.noext; + opts.case = !opts.nocase; + if (options) { + opts.brace = ('brace' in options ? options.brace : opts.brace); + opts.globstar = ('globstar' in options ? options.globstar : opts.globstar); + opts.extension = ('extension' in options ? options.extension : opts.extension); + opts.case = ('case' in options ? options.case : opts.case); + } + return opts; +} +exports.prepare = prepare; /***/ }), -/* 525 */ +/* 526 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var patternUtils = __webpack_require__(526); -/** - * Generate tasks based on parent directory of each pattern. - */ -function generate(patterns, options) { - var unixPatterns = patterns.map(patternUtils.unixifyPattern); - var unixIgnore = options.ignore.map(patternUtils.unixifyPattern); - var positivePatterns = getPositivePatterns(unixPatterns); - var negativePatterns = getNegativePatternsAsPositive(unixPatterns, unixIgnore); - /** - * When the `case` option is disabled, all patterns must be marked as dynamic, because we cannot check filepath - * directly (without read directory). - */ - var staticPatterns = !options.case ? [] : positivePatterns.filter(patternUtils.isStaticPattern); - var dynamicPatterns = !options.case ? positivePatterns : positivePatterns.filter(patternUtils.isDynamicPattern); - var staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); - var dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); - return staticTasks.concat(dynamicTasks); -} -exports.generate = generate; -/** - * Convert patterns to tasks based on parent directory of each pattern. - */ -function convertPatternsToTasks(positive, negative, dynamic) { - var positivePatternsGroup = groupPatternsByBaseDirectory(positive); - // When we have a global group – there is no reason to divide the patterns into independent tasks. - // In this case, the global task covers the rest. - if ('.' in positivePatternsGroup) { - var task = convertPatternGroupToTask('.', positive, negative, dynamic); - return [task]; - } - return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); -} -exports.convertPatternsToTasks = convertPatternsToTasks; -/** - * Return only positive patterns. - */ -function getPositivePatterns(patterns) { - return patternUtils.getPositivePatterns(patterns); -} -exports.getPositivePatterns = getPositivePatterns; -/** - * Return only negative patterns. - */ -function getNegativePatternsAsPositive(patterns, ignore) { - var negative = patternUtils.getNegativePatterns(patterns).concat(ignore); - var positive = negative.map(patternUtils.convertToPositivePattern); - return positive; -} -exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; -/** - * Group patterns by base directory of each pattern. - */ -function groupPatternsByBaseDirectory(patterns) { - return patterns.reduce(function (collection, pattern) { - var base = patternUtils.getBaseDirectory(pattern); - if (base in collection) { - collection[base].push(pattern); - } - else { - collection[base] = [pattern]; - } - return collection; - }, {}); -} -exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; -/** - * Convert group of patterns to tasks. - */ -function convertPatternGroupsToTasks(positive, negative, dynamic) { - return Object.keys(positive).map(function (base) { - return convertPatternGroupToTask(base, positive[base], negative, dynamic); - }); -} -exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; -/** - * Create a task for positive and negative patterns. - */ -function convertPatternGroupToTask(base, positive, negative, dynamic) { - return { - base: base, - dynamic: dynamic, - positive: positive, - negative: negative, - patterns: [].concat(positive, negative.map(patternUtils.convertToNegativePattern)) - }; -} -exports.convertPatternGroupToTask = convertPatternGroupToTask; + +Object.defineProperty(exports, "__esModule", { value: true }); +var patternUtils = __webpack_require__(527); +/** + * Generate tasks based on parent directory of each pattern. + */ +function generate(patterns, options) { + var unixPatterns = patterns.map(patternUtils.unixifyPattern); + var unixIgnore = options.ignore.map(patternUtils.unixifyPattern); + var positivePatterns = getPositivePatterns(unixPatterns); + var negativePatterns = getNegativePatternsAsPositive(unixPatterns, unixIgnore); + /** + * When the `case` option is disabled, all patterns must be marked as dynamic, because we cannot check filepath + * directly (without read directory). + */ + var staticPatterns = !options.case ? [] : positivePatterns.filter(patternUtils.isStaticPattern); + var dynamicPatterns = !options.case ? positivePatterns : positivePatterns.filter(patternUtils.isDynamicPattern); + var staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); + var dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); + return staticTasks.concat(dynamicTasks); +} +exports.generate = generate; +/** + * Convert patterns to tasks based on parent directory of each pattern. + */ +function convertPatternsToTasks(positive, negative, dynamic) { + var positivePatternsGroup = groupPatternsByBaseDirectory(positive); + // When we have a global group – there is no reason to divide the patterns into independent tasks. + // In this case, the global task covers the rest. + if ('.' in positivePatternsGroup) { + var task = convertPatternGroupToTask('.', positive, negative, dynamic); + return [task]; + } + return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); +} +exports.convertPatternsToTasks = convertPatternsToTasks; +/** + * Return only positive patterns. + */ +function getPositivePatterns(patterns) { + return patternUtils.getPositivePatterns(patterns); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Return only negative patterns. + */ +function getNegativePatternsAsPositive(patterns, ignore) { + var negative = patternUtils.getNegativePatterns(patterns).concat(ignore); + var positive = negative.map(patternUtils.convertToPositivePattern); + return positive; +} +exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +/** + * Group patterns by base directory of each pattern. + */ +function groupPatternsByBaseDirectory(patterns) { + return patterns.reduce(function (collection, pattern) { + var base = patternUtils.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } + else { + collection[base] = [pattern]; + } + return collection; + }, {}); +} +exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +/** + * Convert group of patterns to tasks. + */ +function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map(function (base) { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); +} +exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +/** + * Create a task for positive and negative patterns. + */ +function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + base: base, + dynamic: dynamic, + positive: positive, + negative: negative, + patterns: [].concat(positive, negative.map(patternUtils.convertToNegativePattern)) + }; +} +exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 526 */ +/* 527 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var path = __webpack_require__(4); -var globParent = __webpack_require__(309); -var isGlob = __webpack_require__(310); -var micromatch = __webpack_require__(527); -var GLOBSTAR = '**'; -/** - * Return true for static pattern. - */ -function isStaticPattern(pattern) { - return !isDynamicPattern(pattern); -} -exports.isStaticPattern = isStaticPattern; -/** - * Return true for pattern that looks like glob. - */ -function isDynamicPattern(pattern) { - return isGlob(pattern, { strict: false }); -} -exports.isDynamicPattern = isDynamicPattern; -/** - * Convert a windows «path» to a unix-style «path». - */ -function unixifyPattern(pattern) { - return pattern.replace(/\\/g, '/'); -} -exports.unixifyPattern = unixifyPattern; -/** - * Returns negative pattern as positive pattern. - */ -function convertToPositivePattern(pattern) { - return isNegativePattern(pattern) ? pattern.slice(1) : pattern; -} -exports.convertToPositivePattern = convertToPositivePattern; -/** - * Returns positive pattern as negative pattern. - */ -function convertToNegativePattern(pattern) { - return '!' + pattern; -} -exports.convertToNegativePattern = convertToNegativePattern; -/** - * Return true if provided pattern is negative pattern. - */ -function isNegativePattern(pattern) { - return pattern.startsWith('!') && pattern[1] !== '('; -} -exports.isNegativePattern = isNegativePattern; -/** - * Return true if provided pattern is positive pattern. - */ -function isPositivePattern(pattern) { - return !isNegativePattern(pattern); -} -exports.isPositivePattern = isPositivePattern; -/** - * Extracts negative patterns from array of patterns. - */ -function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); -} -exports.getNegativePatterns = getNegativePatterns; -/** - * Extracts positive patterns from array of patterns. - */ -function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); -} -exports.getPositivePatterns = getPositivePatterns; -/** - * Extract base directory from provided pattern. - */ -function getBaseDirectory(pattern) { - return globParent(pattern); -} -exports.getBaseDirectory = getBaseDirectory; -/** - * Return true if provided pattern has globstar. - */ -function hasGlobStar(pattern) { - return pattern.indexOf(GLOBSTAR) !== -1; -} -exports.hasGlobStar = hasGlobStar; -/** - * Return true if provided pattern ends with slash and globstar. - */ -function endsWithSlashGlobStar(pattern) { - return pattern.endsWith('/' + GLOBSTAR); -} -exports.endsWithSlashGlobStar = endsWithSlashGlobStar; -/** - * Returns «true» when pattern ends with a slash and globstar or the last partial of the pattern is static pattern. - */ -function isAffectDepthOfReadingPattern(pattern) { - var basename = path.basename(pattern); - return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); -} -exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; -/** - * Return naive depth of provided pattern without depth of the base directory. - */ -function getNaiveDepth(pattern) { - var base = getBaseDirectory(pattern); - var patternDepth = pattern.split('/').length; - var patternBaseDepth = base.split('/').length; - /** - * This is a hack for pattern that has no base directory. - * - * This is related to the `*\something\*` pattern. - */ - if (base === '.') { - return patternDepth - patternBaseDepth; - } - return patternDepth - patternBaseDepth - 1; -} -exports.getNaiveDepth = getNaiveDepth; -/** - * Return max naive depth of provided patterns without depth of the base directory. - */ -function getMaxNaivePatternsDepth(patterns) { - return patterns.reduce(function (max, pattern) { - var depth = getNaiveDepth(pattern); - return depth > max ? depth : max; - }, 0); -} -exports.getMaxNaivePatternsDepth = getMaxNaivePatternsDepth; -/** - * Make RegExp for provided pattern. - */ -function makeRe(pattern, options) { - return micromatch.makeRe(pattern, options); -} -exports.makeRe = makeRe; -/** - * Convert patterns to regexps. - */ -function convertPatternsToRe(patterns, options) { - return patterns.map(function (pattern) { return makeRe(pattern, options); }); -} -exports.convertPatternsToRe = convertPatternsToRe; -/** - * Returns true if the entry match any of the given RegExp's. - */ -function matchAny(entry, patternsRe) { - return patternsRe.some(function (patternRe) { return patternRe.test(entry); }); -} -exports.matchAny = matchAny; + +Object.defineProperty(exports, "__esModule", { value: true }); +var path = __webpack_require__(4); +var globParent = __webpack_require__(310); +var isGlob = __webpack_require__(311); +var micromatch = __webpack_require__(528); +var GLOBSTAR = '**'; +/** + * Return true for static pattern. + */ +function isStaticPattern(pattern) { + return !isDynamicPattern(pattern); +} +exports.isStaticPattern = isStaticPattern; +/** + * Return true for pattern that looks like glob. + */ +function isDynamicPattern(pattern) { + return isGlob(pattern, { strict: false }); +} +exports.isDynamicPattern = isDynamicPattern; +/** + * Convert a windows «path» to a unix-style «path». + */ +function unixifyPattern(pattern) { + return pattern.replace(/\\/g, '/'); +} +exports.unixifyPattern = unixifyPattern; +/** + * Returns negative pattern as positive pattern. + */ +function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; +} +exports.convertToPositivePattern = convertToPositivePattern; +/** + * Returns positive pattern as negative pattern. + */ +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +/** + * Return true if provided pattern is negative pattern. + */ +function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; +} +exports.isNegativePattern = isNegativePattern; +/** + * Return true if provided pattern is positive pattern. + */ +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +/** + * Extracts negative patterns from array of patterns. + */ +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; +/** + * Extracts positive patterns from array of patterns. + */ +function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Extract base directory from provided pattern. + */ +function getBaseDirectory(pattern) { + return globParent(pattern); +} +exports.getBaseDirectory = getBaseDirectory; +/** + * Return true if provided pattern has globstar. + */ +function hasGlobStar(pattern) { + return pattern.indexOf(GLOBSTAR) !== -1; +} +exports.hasGlobStar = hasGlobStar; +/** + * Return true if provided pattern ends with slash and globstar. + */ +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +/** + * Returns «true» when pattern ends with a slash and globstar or the last partial of the pattern is static pattern. + */ +function isAffectDepthOfReadingPattern(pattern) { + var basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); +} +exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +/** + * Return naive depth of provided pattern without depth of the base directory. + */ +function getNaiveDepth(pattern) { + var base = getBaseDirectory(pattern); + var patternDepth = pattern.split('/').length; + var patternBaseDepth = base.split('/').length; + /** + * This is a hack for pattern that has no base directory. + * + * This is related to the `*\something\*` pattern. + */ + if (base === '.') { + return patternDepth - patternBaseDepth; + } + return patternDepth - patternBaseDepth - 1; +} +exports.getNaiveDepth = getNaiveDepth; +/** + * Return max naive depth of provided patterns without depth of the base directory. + */ +function getMaxNaivePatternsDepth(patterns) { + return patterns.reduce(function (max, pattern) { + var depth = getNaiveDepth(pattern); + return depth > max ? depth : max; + }, 0); +} +exports.getMaxNaivePatternsDepth = getMaxNaivePatternsDepth; +/** + * Make RegExp for provided pattern. + */ +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +/** + * Convert patterns to regexps. + */ +function convertPatternsToRe(patterns, options) { + return patterns.map(function (pattern) { return makeRe(pattern, options); }); +} +exports.convertPatternsToRe = convertPatternsToRe; +/** + * Returns true if the entry match any of the given RegExp's. + */ +function matchAny(entry, patternsRe) { + return patternsRe.some(function (patternRe) { return patternRe.test(entry); }); +} +exports.matchAny = matchAny; /***/ }), -/* 527 */ +/* 528 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57682,18 +57727,18 @@ exports.matchAny = matchAny; */ var util = __webpack_require__(112); -var braces = __webpack_require__(528); -var toRegex = __webpack_require__(529); -var extend = __webpack_require__(632); +var braces = __webpack_require__(529); +var toRegex = __webpack_require__(530); +var extend = __webpack_require__(543); /** * Local dependencies */ -var compilers = __webpack_require__(634); -var parsers = __webpack_require__(663); -var cache = __webpack_require__(664); -var utils = __webpack_require__(665); +var compilers = __webpack_require__(632); +var parsers = __webpack_require__(661); +var cache = __webpack_require__(662); +var utils = __webpack_require__(663); var MAX_LENGTH = 1024 * 64; /** @@ -58555,7 +58600,7 @@ module.exports = micromatch; /***/ }), -/* 528 */ +/* 529 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58565,18 +58610,18 @@ module.exports = micromatch; * Module dependencies */ -var toRegex = __webpack_require__(529); -var unique = __webpack_require__(549); -var extend = __webpack_require__(550); +var toRegex = __webpack_require__(530); +var unique = __webpack_require__(548); +var extend = __webpack_require__(549); /** * Local dependencies */ -var compilers = __webpack_require__(552); -var parsers = __webpack_require__(563); -var Braces = __webpack_require__(567); -var utils = __webpack_require__(553); +var compilers = __webpack_require__(551); +var parsers = __webpack_require__(561); +var Braces = __webpack_require__(565); +var utils = __webpack_require__(552); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -58880,16 +58925,16 @@ module.exports = braces; /***/ }), -/* 529 */ +/* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var safe = __webpack_require__(530); -var define = __webpack_require__(536); -var extend = __webpack_require__(542); -var not = __webpack_require__(546); +var safe = __webpack_require__(531); +var define = __webpack_require__(537); +var extend = __webpack_require__(543); +var not = __webpack_require__(547); var MAX_LENGTH = 1024 * 64; /** @@ -59042,10 +59087,10 @@ module.exports.makeRe = makeRe; /***/ }), -/* 530 */ +/* 531 */ /***/ (function(module, exports, __webpack_require__) { -var parse = __webpack_require__(531); +var parse = __webpack_require__(532); var types = parse.types; module.exports = function (re, opts) { @@ -59091,13 +59136,13 @@ function isRegExp (x) { /***/ }), -/* 531 */ +/* 532 */ /***/ (function(module, exports, __webpack_require__) { -var util = __webpack_require__(532); -var types = __webpack_require__(533); -var sets = __webpack_require__(534); -var positions = __webpack_require__(535); +var util = __webpack_require__(533); +var types = __webpack_require__(534); +var sets = __webpack_require__(535); +var positions = __webpack_require__(536); module.exports = function(regexpStr) { @@ -59379,11 +59424,11 @@ module.exports.types = types; /***/ }), -/* 532 */ +/* 533 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); -var sets = __webpack_require__(534); +var types = __webpack_require__(534); +var sets = __webpack_require__(535); // All of these are private and only used by randexp. @@ -59496,7 +59541,7 @@ exports.error = function(regexp, msg) { /***/ }), -/* 533 */ +/* 534 */ /***/ (function(module, exports) { module.exports = { @@ -59512,10 +59557,10 @@ module.exports = { /***/ }), -/* 534 */ +/* 535 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); +var types = __webpack_require__(534); var INTS = function() { return [{ type: types.RANGE , from: 48, to: 57 }]; @@ -59600,10 +59645,10 @@ exports.anyChar = function() { /***/ }), -/* 535 */ +/* 536 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(533); +var types = __webpack_require__(534); exports.wordBoundary = function() { return { type: types.POSITION, value: 'b' }; @@ -59623,7 +59668,7 @@ exports.end = function() { /***/ }), -/* 536 */ +/* 537 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59636,8 +59681,8 @@ exports.end = function() { -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -59668,7 +59713,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 537 */ +/* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59687,7 +59732,7 @@ module.exports = function isObject(val) { /***/ }), -/* 538 */ +/* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59700,9 +59745,9 @@ module.exports = function isObject(val) { -var typeOf = __webpack_require__(539); -var isAccessor = __webpack_require__(540); -var isData = __webpack_require__(541); +var typeOf = __webpack_require__(540); +var isAccessor = __webpack_require__(541); +var isData = __webpack_require__(542); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -59716,7 +59761,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 539 */ +/* 540 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -59851,7 +59896,7 @@ function isBuffer(val) { /***/ }), -/* 540 */ +/* 541 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59864,7 +59909,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); // accessor descriptor properties var accessor = { @@ -59927,7 +59972,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 541 */ +/* 542 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59940,7 +59985,7 @@ module.exports = isAccessorDescriptor; -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); module.exports = function isDataDescriptor(obj, prop) { // data descriptor properties @@ -59983,14 +60028,14 @@ module.exports = function isDataDescriptor(obj, prop) { /***/ }), -/* 542 */ +/* 543 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(543); -var assignSymbols = __webpack_require__(545); +var isExtendable = __webpack_require__(544); +var assignSymbols = __webpack_require__(546); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -60050,7 +60095,7 @@ function isEnum(obj, key) { /***/ }), -/* 543 */ +/* 544 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60063,7 +60108,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(544); +var isPlainObject = __webpack_require__(545); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -60071,7 +60116,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 544 */ +/* 545 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60084,7 +60129,7 @@ module.exports = function isExtendable(val) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(538); function isObjectObject(o) { return isObject(o) === true @@ -60115,7 +60160,7 @@ module.exports = function isPlainObject(o) { /***/ }), -/* 545 */ +/* 546 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60162,14 +60207,14 @@ module.exports = function(receiver, objects) { /***/ }), -/* 546 */ +/* 547 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(547); -var safe = __webpack_require__(530); +var extend = __webpack_require__(543); +var safe = __webpack_require__(531); /** * The main export is a function that takes a `pattern` string and an `options` object. @@ -60240,98 +60285,10 @@ toRegex.create = function(pattern, options) { module.exports = toRegex; -/***/ }), -/* 547 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isExtendable = __webpack_require__(548); -var assignSymbols = __webpack_require__(545); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } -} - -function isString(val) { - return (val && typeof val === 'string'); -} - -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; - } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); -} - -/** - * Returns true if the given `key` is an own property of `obj`. - */ - -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); -} - - /***/ }), /* 548 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isPlainObject = __webpack_require__(544); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; - - -/***/ }), -/* 549 */ -/***/ (function(module, exports, __webpack_require__) { - "use strict"; /*! * array-unique @@ -60379,13 +60336,13 @@ module.exports.immutable = function uniqueImmutable(arr) { /***/ }), -/* 550 */ +/* 549 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(551); +var isObject = __webpack_require__(550); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -60419,7 +60376,7 @@ function hasOwn(obj, key) { /***/ }), -/* 551 */ +/* 550 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60439,13 +60396,13 @@ module.exports = function isExtendable(val) { /***/ }), -/* 552 */ +/* 551 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(553); +var utils = __webpack_require__(552); module.exports = function(braces, options) { braces.compiler @@ -60728,25 +60685,25 @@ function hasQueue(node) { /***/ }), -/* 553 */ +/* 552 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var splitString = __webpack_require__(554); +var splitString = __webpack_require__(553); var utils = module.exports; /** * Module dependencies */ -utils.extend = __webpack_require__(550); -utils.flatten = __webpack_require__(557); -utils.isObject = __webpack_require__(537); -utils.fillRange = __webpack_require__(558); -utils.repeat = __webpack_require__(562); -utils.unique = __webpack_require__(549); +utils.extend = __webpack_require__(549); +utils.flatten = __webpack_require__(554); +utils.isObject = __webpack_require__(538); +utils.fillRange = __webpack_require__(555); +utils.repeat = __webpack_require__(560); +utils.unique = __webpack_require__(548); utils.define = function(obj, key, val) { Object.defineProperty(obj, key, { @@ -61078,7 +61035,7 @@ utils.escapeRegex = function(str) { /***/ }), -/* 554 */ +/* 553 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61091,7 +61048,7 @@ utils.escapeRegex = function(str) { -var extend = __webpack_require__(555); +var extend = __webpack_require__(543); module.exports = function(str, options, fn) { if (typeof str !== 'string') { @@ -61256,95 +61213,7 @@ function keepEscaping(opts, str, idx) { /***/ }), -/* 555 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isExtendable = __webpack_require__(556); -var assignSymbols = __webpack_require__(545); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } -} - -function isString(val) { - return (val && typeof val === 'string'); -} - -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; - } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); -} - -/** - * Returns true if the given `key` is an own property of `obj`. - */ - -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); -} - - -/***/ }), -/* 556 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isPlainObject = __webpack_require__(544); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; - - -/***/ }), -/* 557 */ +/* 554 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61373,7 +61242,7 @@ function flat(arr, res) { /***/ }), -/* 558 */ +/* 555 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61387,10 +61256,10 @@ function flat(arr, res) { var util = __webpack_require__(112); -var isNumber = __webpack_require__(559); -var extend = __webpack_require__(550); -var repeat = __webpack_require__(560); -var toRegex = __webpack_require__(561); +var isNumber = __webpack_require__(556); +var extend = __webpack_require__(557); +var repeat = __webpack_require__(558); +var toRegex = __webpack_require__(559); /** * Return a range of numbers or letters. @@ -61588,7 +61457,7 @@ module.exports = fillRange; /***/ }), -/* 559 */ +/* 556 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61601,7 +61470,7 @@ module.exports = fillRange; -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); module.exports = function isNumber(num) { var type = typeOf(num); @@ -61617,7 +61486,47 @@ module.exports = function isNumber(num) { /***/ }), -/* 560 */ +/* 557 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(550); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + +/***/ }), +/* 558 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61694,7 +61603,7 @@ function repeat(str, num) { /***/ }), -/* 561 */ +/* 559 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61707,8 +61616,8 @@ function repeat(str, num) { -var repeat = __webpack_require__(560); -var isNumber = __webpack_require__(559); +var repeat = __webpack_require__(558); +var isNumber = __webpack_require__(556); var cache = {}; function toRegexRange(min, max, options) { @@ -61995,7 +61904,7 @@ module.exports = toRegexRange; /***/ }), -/* 562 */ +/* 560 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62024,14 +61933,14 @@ module.exports = function repeat(ele, num) { /***/ }), -/* 563 */ +/* 561 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Node = __webpack_require__(564); -var utils = __webpack_require__(553); +var Node = __webpack_require__(562); +var utils = __webpack_require__(552); /** * Braces parsers @@ -62391,15 +62300,15 @@ function concatNodes(pos, node, parent, options) { /***/ }), -/* 564 */ +/* 562 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(537); -var define = __webpack_require__(565); -var utils = __webpack_require__(566); +var isObject = __webpack_require__(538); +var define = __webpack_require__(563); +var utils = __webpack_require__(564); var ownNames; /** @@ -62890,7 +62799,7 @@ exports = module.exports = Node; /***/ }), -/* 565 */ +/* 563 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62903,7 +62812,7 @@ exports = module.exports = Node; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -62928,13 +62837,13 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 566 */ +/* 564 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); var utils = module.exports; /** @@ -63954,17 +63863,17 @@ function assert(val, message) { /***/ }), -/* 567 */ +/* 565 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(550); -var Snapdragon = __webpack_require__(568); -var compilers = __webpack_require__(552); -var parsers = __webpack_require__(563); -var utils = __webpack_require__(553); +var extend = __webpack_require__(549); +var Snapdragon = __webpack_require__(566); +var compilers = __webpack_require__(551); +var parsers = __webpack_require__(561); +var utils = __webpack_require__(552); /** * Customize Snapdragon parser and renderer @@ -64065,17 +63974,17 @@ module.exports = Braces; /***/ }), -/* 568 */ +/* 566 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(569); -var define = __webpack_require__(594); -var Compiler = __webpack_require__(601); +var Base = __webpack_require__(567); +var define = __webpack_require__(593); +var Compiler = __webpack_require__(600); var Parser = __webpack_require__(629); -var utils = __webpack_require__(609); +var utils = __webpack_require__(608); var regexCache = {}; var cache = {}; @@ -64246,20 +64155,20 @@ module.exports.Parser = Parser; /***/ }), -/* 569 */ +/* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var define = __webpack_require__(570); -var CacheBase = __webpack_require__(571); -var Emitter = __webpack_require__(572); -var isObject = __webpack_require__(537); -var merge = __webpack_require__(589); -var pascal = __webpack_require__(592); -var cu = __webpack_require__(593); +var define = __webpack_require__(568); +var CacheBase = __webpack_require__(569); +var Emitter = __webpack_require__(570); +var isObject = __webpack_require__(538); +var merge = __webpack_require__(588); +var pascal = __webpack_require__(591); +var cu = __webpack_require__(592); /** * Optionally define a custom `cache` namespace to use. @@ -64688,7 +64597,7 @@ module.exports.namespace = namespace; /***/ }), -/* 570 */ +/* 568 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64701,7 +64610,7 @@ module.exports.namespace = namespace; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -64726,21 +64635,21 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 571 */ +/* 569 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(537); -var Emitter = __webpack_require__(572); -var visit = __webpack_require__(573); -var toPath = __webpack_require__(576); -var union = __webpack_require__(577); -var del = __webpack_require__(581); -var get = __webpack_require__(579); -var has = __webpack_require__(587); -var set = __webpack_require__(580); +var isObject = __webpack_require__(538); +var Emitter = __webpack_require__(570); +var visit = __webpack_require__(571); +var toPath = __webpack_require__(574); +var union = __webpack_require__(575); +var del = __webpack_require__(580); +var get = __webpack_require__(577); +var has = __webpack_require__(586); +var set = __webpack_require__(578); /** * Create a `Cache` constructor that when instantiated will @@ -64994,188 +64903,188 @@ module.exports.namespace = namespace; /***/ }), -/* 572 */ +/* 570 */ /***/ (function(module, exports, __webpack_require__) { - -/** - * Expose `Emitter`. - */ - -if (true) { - module.exports = Emitter; -} - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks['$' + event] = this._callbacks['$' + event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - function on() { - this.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks['$' + event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks['$' + event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - - // Remove event specific arrays for event types that no - // one is subscribed for to avoid memory leak. - if (callbacks.length === 0) { - delete this._callbacks['$' + event]; - } - - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - - var args = new Array(arguments.length - 1) - , callbacks = this._callbacks['$' + event]; - - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks['$' + event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; + +/** + * Expose `Emitter`. + */ + +if (true) { + module.exports = Emitter; +} + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + + // Remove event specific arrays for event types that no + // one is subscribed for to avoid memory leak. + if (callbacks.length === 0) { + delete this._callbacks['$' + event]; + } + + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + + var args = new Array(arguments.length - 1) + , callbacks = this._callbacks['$' + event]; + + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; /***/ }), -/* 573 */ +/* 571 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65188,8 +65097,8 @@ Emitter.prototype.hasListeners = function(event){ -var visit = __webpack_require__(574); -var mapVisit = __webpack_require__(575); +var visit = __webpack_require__(572); +var mapVisit = __webpack_require__(573); module.exports = function(collection, method, val) { var result; @@ -65212,7 +65121,7 @@ module.exports = function(collection, method, val) { /***/ }), -/* 574 */ +/* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65225,7 +65134,7 @@ module.exports = function(collection, method, val) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(538); module.exports = function visit(thisArg, method, target, val) { if (!isObject(thisArg) && typeof thisArg !== 'function') { @@ -65252,14 +65161,14 @@ module.exports = function visit(thisArg, method, target, val) { /***/ }), -/* 575 */ +/* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var visit = __webpack_require__(574); +var visit = __webpack_require__(572); /** * Map `visit` over an array of objects. @@ -65296,7 +65205,7 @@ function isObject(val) { /***/ }), -/* 576 */ +/* 574 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65309,7 +65218,7 @@ function isObject(val) { -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); module.exports = function toPath(args) { if (typeOf(args) !== 'arguments') { @@ -65336,16 +65245,16 @@ function filter(arr) { /***/ }), -/* 577 */ +/* 575 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(551); -var union = __webpack_require__(578); -var get = __webpack_require__(579); -var set = __webpack_require__(580); +var isObject = __webpack_require__(550); +var union = __webpack_require__(576); +var get = __webpack_require__(577); +var set = __webpack_require__(578); module.exports = function unionValue(obj, prop, value) { if (!isObject(obj)) { @@ -65373,7 +65282,7 @@ function arrayify(val) { /***/ }), -/* 578 */ +/* 576 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65409,7 +65318,7 @@ module.exports = function union(init) { /***/ }), -/* 579 */ +/* 577 */ /***/ (function(module, exports) { /*! @@ -65465,69 +65374,205 @@ function toString(val) { /***/ }), -/* 580 */ +/* 578 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! * set-value * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. + * Copyright (c) Jon Schlinkert (https://github.com/jonschlinkert). * Released under the MIT License. */ -var split = __webpack_require__(554); -var extend = __webpack_require__(550); -var isPlainObject = __webpack_require__(544); -var isObject = __webpack_require__(551); +const { deleteProperty } = Reflect; +const isPrimitive = __webpack_require__(579); +const isPlainObject = __webpack_require__(545); -module.exports = function(obj, prop, val) { - if (!isObject(obj)) { - return obj; +const isObject = value => { + return (typeof value === 'object' && value !== null) || typeof value === 'function'; +}; + +const isUnsafeKey = key => { + return key === '__proto__' || key === 'constructor' || key === 'prototype'; +}; + +const validateKey = key => { + if (!isPrimitive(key)) { + throw new TypeError('Object keys must be strings or symbols'); } - if (Array.isArray(prop)) { - prop = [].concat.apply([], prop).join('.'); + if (isUnsafeKey(key)) { + throw new Error(`Cannot set unsafe key: "${key}"`); } +}; - if (typeof prop !== 'string') { - return obj; +const toStringKey = input => { + return Array.isArray(input) ? input.flat().map(String).join(',') : input; +}; + +const createMemoKey = (input, options) => { + if (typeof input !== 'string' || !options) return input; + let key = input + ';'; + if (options.arrays !== undefined) key += `arrays=${options.arrays};`; + if (options.separator !== undefined) key += `separator=${options.separator};`; + if (options.split !== undefined) key += `split=${options.split};`; + if (options.merge !== undefined) key += `merge=${options.merge};`; + if (options.preservePaths !== undefined) key += `preservePaths=${options.preservePaths};`; + return key; +}; + +const memoize = (input, options, fn) => { + const key = toStringKey(options ? createMemoKey(input, options) : input); + validateKey(key); + + const value = setValue.cache.get(key) || fn(); + setValue.cache.set(key, value); + return value; +}; + +const splitString = (input, options = {}) => { + const sep = options.separator || '.'; + const preserve = sep === '/' ? false : options.preservePaths; + + if (typeof input === 'string' && preserve !== false && /\//.test(input)) { + return [input]; } - var keys = split(prop, {sep: '.', brackets: true}).filter(isValidKey); - var len = keys.length; - var idx = -1; - var current = obj; + const parts = []; + let part = ''; - while (++idx < len) { - var key = keys[idx]; - if (idx !== len - 1) { - if (!isObject(current[key])) { - current[key] = {}; - } - current = current[key]; + const push = part => { + let number; + if (part.trim() !== '' && Number.isInteger((number = Number(part)))) { + parts.push(number); + } else { + parts.push(part); + } + }; + + for (let i = 0; i < input.length; i++) { + const value = input[i]; + + if (value === '\\') { + part += input[++i]; continue; } - if (isPlainObject(current[key]) && isPlainObject(val)) { - current[key] = extend({}, current[key], val); + if (value === sep) { + push(part); + part = ''; + continue; + } + + part += value; + } + + if (part) { + push(part); + } + + return parts; +}; + +const split = (input, options) => { + if (options && typeof options.split === 'function') return options.split(input); + if (typeof input === 'symbol') return [input]; + if (Array.isArray(input)) return input; + return memoize(input, options, () => splitString(input, options)); +}; + +const assignProp = (obj, prop, value, options) => { + validateKey(prop); + + // Delete property when "value" is undefined + if (value === undefined) { + deleteProperty(obj, prop); + + } else if (options && options.merge) { + const merge = options.merge === 'function' ? options.merge : Object.assign; + + // Only merge plain objects + if (merge && isPlainObject(obj[prop]) && isPlainObject(value)) { + obj[prop] = merge(obj[prop], value); } else { - current[key] = val; + obj[prop] = value; } + + } else { + obj[prop] = value; } return obj; }; -function isValidKey(key) { - return key !== '__proto__' && key !== 'constructor' && key !== 'prototype'; -} +const setValue = (target, path, value, options) => { + if (!path || !isObject(target)) return target; + + const keys = split(path, options); + let obj = target; + + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const next = keys[i + 1]; + + validateKey(key); + + if (next === undefined) { + assignProp(obj, key, value, options); + break; + } + + if (typeof next === 'number' && !Array.isArray(obj[key])) { + obj = obj[key] = []; + continue; + } + + if (!isObject(obj[key])) { + obj[key] = {}; + } + + obj = obj[key]; + } + + return target; +}; + +setValue.split = split; +setValue.cache = new Map(); +setValue.clear = () => { + setValue.cache = new Map(); +}; + +module.exports = setValue; /***/ }), -/* 581 */ +/* 579 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * is-primitive + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + + + +module.exports = function isPrimitive(val) { + if (typeof val === 'object') { + return val === null; + } + return typeof val !== 'function'; +}; + + +/***/ }), +/* 580 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65540,8 +65585,8 @@ function isValidKey(key) { -var isObject = __webpack_require__(582); -var has = __webpack_require__(583); +var isObject = __webpack_require__(581); +var has = __webpack_require__(582); const isUnsafeKey = key => { return key === '__proto__' || key === 'constructor' || key === 'prototype'; @@ -65583,7 +65628,7 @@ module.exports = function unset(obj, prop) { /***/ }), -/* 582 */ +/* 581 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -65602,7 +65647,7 @@ function isObject(val) { /***/ }), -/* 583 */ +/* 582 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65615,8 +65660,8 @@ function isObject(val) { -const get = __webpack_require__(584); -const has = __webpack_require__(586); +const get = __webpack_require__(583); +const has = __webpack_require__(585); module.exports = function(obj, path, options) { if (isObject(obj) && (typeof path === 'string' || Array.isArray(path))) { @@ -65631,7 +65676,7 @@ function isObject(val) { /***/ }), -/* 584 */ +/* 583 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -65641,7 +65686,7 @@ function isObject(val) { * Released under the MIT License. */ -const isObject = __webpack_require__(585); +const isObject = __webpack_require__(584); module.exports = function(target, path, options) { if (!isObject(options)) { @@ -65747,7 +65792,7 @@ function isValidObject(val) { /***/ }), -/* 585 */ +/* 584 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65766,7 +65811,7 @@ module.exports = function isObject(val) { /***/ }), -/* 586 */ +/* 585 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65779,7 +65824,7 @@ module.exports = function isObject(val) { -const typeOf = __webpack_require__(539); +const typeOf = __webpack_require__(540); module.exports = function has(val) { switch (typeOf(val)) { @@ -65822,7 +65867,7 @@ module.exports = function has(val) { /***/ }), -/* 587 */ +/* 586 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65835,9 +65880,9 @@ module.exports = function has(val) { -var isObject = __webpack_require__(537); -var hasValues = __webpack_require__(588); -var get = __webpack_require__(579); +var isObject = __webpack_require__(538); +var hasValues = __webpack_require__(587); +var get = __webpack_require__(577); module.exports = function(val, prop) { return hasValues(isObject(val) && prop ? get(val, prop) : val); @@ -65845,7 +65890,7 @@ module.exports = function(val, prop) { /***/ }), -/* 588 */ +/* 587 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65858,8 +65903,8 @@ module.exports = function(val, prop) { -var typeOf = __webpack_require__(539); -var isNumber = __webpack_require__(559); +var typeOf = __webpack_require__(540); +var isNumber = __webpack_require__(556); module.exports = function hasValue(val) { // is-number checks for NaN and other edge cases @@ -65912,14 +65957,14 @@ module.exports = function hasValue(val) { /***/ }), -/* 589 */ +/* 588 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(590); -var forIn = __webpack_require__(591); +var isExtendable = __webpack_require__(589); +var forIn = __webpack_require__(590); function mixinDeep(target, objects) { var len = arguments.length, i = 0; @@ -65983,7 +66028,7 @@ module.exports = mixinDeep; /***/ }), -/* 590 */ +/* 589 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65996,7 +66041,7 @@ module.exports = mixinDeep; -var isPlainObject = __webpack_require__(544); +var isPlainObject = __webpack_require__(545); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -66004,7 +66049,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 591 */ +/* 590 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66027,7 +66072,7 @@ module.exports = function forIn(obj, fn, thisArg) { /***/ }), -/* 592 */ +/* 591 */ /***/ (function(module, exports) { /*! @@ -66054,17 +66099,17 @@ module.exports = pascalcase; /***/ }), -/* 593 */ +/* 592 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(112); -var union = __webpack_require__(578); -var define = __webpack_require__(594); -var staticExtend = __webpack_require__(598); -var isObj = __webpack_require__(537); +var union = __webpack_require__(576); +var define = __webpack_require__(593); +var staticExtend = __webpack_require__(597); +var isObj = __webpack_require__(538); /** * Expose class utils @@ -66431,7 +66476,7 @@ cu.bubble = function(Parent, events) { /***/ }), -/* 594 */ +/* 593 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66444,7 +66489,7 @@ cu.bubble = function(Parent, events) { -var isDescriptor = __webpack_require__(595); +var isDescriptor = __webpack_require__(594); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -66469,7 +66514,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 595 */ +/* 594 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66482,9 +66527,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(539); -var isAccessor = __webpack_require__(596); -var isData = __webpack_require__(597); +var typeOf = __webpack_require__(540); +var isAccessor = __webpack_require__(595); +var isData = __webpack_require__(596); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -66498,7 +66543,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 596 */ +/* 595 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66511,7 +66556,7 @@ module.exports = function isDescriptor(obj, key) { -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); // accessor descriptor properties var accessor = { @@ -66574,7 +66619,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 597 */ +/* 596 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66587,7 +66632,7 @@ module.exports = isAccessorDescriptor; -var typeOf = __webpack_require__(539); +var typeOf = __webpack_require__(540); // data descriptor properties var data = { @@ -66636,7 +66681,7 @@ module.exports = isDataDescriptor; /***/ }), -/* 598 */ +/* 597 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66649,8 +66694,8 @@ module.exports = isDataDescriptor; -var copy = __webpack_require__(599); -var define = __webpack_require__(594); +var copy = __webpack_require__(598); +var define = __webpack_require__(593); var util = __webpack_require__(112); /** @@ -66733,15 +66778,15 @@ module.exports = extend; /***/ }), -/* 599 */ +/* 598 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(539); -var copyDescriptor = __webpack_require__(600); -var define = __webpack_require__(594); +var typeOf = __webpack_require__(540); +var copyDescriptor = __webpack_require__(599); +var define = __webpack_require__(593); /** * Copy static properties, prototype properties, and descriptors from one object to another. @@ -66914,7 +66959,7 @@ module.exports.has = has; /***/ }), -/* 600 */ +/* 599 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67002,16 +67047,16 @@ function isObject(val) { /***/ }), -/* 601 */ +/* 600 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(602); -var define = __webpack_require__(594); -var debug = __webpack_require__(603)('snapdragon:compiler'); -var utils = __webpack_require__(609); +var use = __webpack_require__(601); +var define = __webpack_require__(593); +var debug = __webpack_require__(602)('snapdragon:compiler'); +var utils = __webpack_require__(608); /** * Create a new `Compiler` with the given `options`. @@ -67186,7 +67231,7 @@ module.exports = Compiler; /***/ }), -/* 602 */ +/* 601 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67348,7 +67393,7 @@ function define(obj, key, val) { /***/ }), -/* 603 */ +/* 602 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -67357,14 +67402,14 @@ function define(obj, key, val) { */ if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(604); + module.exports = __webpack_require__(603); } else { - module.exports = __webpack_require__(607); + module.exports = __webpack_require__(606); } /***/ }), -/* 604 */ +/* 603 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -67373,7 +67418,7 @@ if (typeof process !== 'undefined' && process.type === 'renderer') { * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(605); +exports = module.exports = __webpack_require__(604); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -67555,7 +67600,7 @@ function localstorage() { /***/ }), -/* 605 */ +/* 604 */ /***/ (function(module, exports, __webpack_require__) { @@ -67571,7 +67616,7 @@ exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; -exports.humanize = __webpack_require__(606); +exports.humanize = __webpack_require__(605); /** * The currently active debug mode names, and names to skip. @@ -67763,7 +67808,7 @@ function coerce(val) { /***/ }), -/* 606 */ +/* 605 */ /***/ (function(module, exports) { /** @@ -67921,7 +67966,7 @@ function plural(ms, n, name) { /***/ }), -/* 607 */ +/* 606 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -67937,7 +67982,7 @@ var util = __webpack_require__(112); * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(605); +exports = module.exports = __webpack_require__(604); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; @@ -68116,7 +68161,7 @@ function createWritableStdioStream (fd) { case 'PIPE': case 'TCP': - var net = __webpack_require__(608); + var net = __webpack_require__(607); stream = new net.Socket({ fd: fd, readable: false, @@ -68175,13 +68220,13 @@ exports.enable(load()); /***/ }), -/* 608 */ +/* 607 */ /***/ (function(module, exports) { module.exports = require("net"); /***/ }), -/* 609 */ +/* 608 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68191,7 +68236,7 @@ module.exports = require("net"); * Module dependencies */ -exports.extend = __webpack_require__(550); +exports.extend = __webpack_require__(609); exports.SourceMap = __webpack_require__(610); exports.sourceMapResolve = __webpack_require__(621); @@ -68235,6 +68280,46 @@ exports.last = function(arr, n) { }; +/***/ }), +/* 609 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(550); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + /***/ }), /* 610 */ /***/ (function(module, exports, __webpack_require__) { @@ -71684,7 +71769,7 @@ void (function(root, factory) { /* 623 */ /***/ (function(module, exports, __webpack_require__) { -var url = __webpack_require__(200) +var url = __webpack_require__(201) function resolveUrl(/* ...urls */) { return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) { @@ -71814,23 +71899,23 @@ module.exports = function (encodedURI) { /* 626 */ /***/ (function(module, exports, __webpack_require__) { -// Copyright 2014 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) - -var path = __webpack_require__(4) - -"use strict" - -function urix(aPath) { - if (path.sep === "\\") { - return aPath - .replace(/\\/g, "/") - .replace(/^[a-z]:\/?/i, "/") - } - return aPath -} - -module.exports = urix +// Copyright 2014 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) + +var path = __webpack_require__(4) + +"use strict" + +function urix(aPath) { + if (path.sep === "\\") { + return aPath + .replace(/\\/g, "/") + .replace(/^[a-z]:\/?/i, "/") + } + return aPath +} + +module.exports = urix /***/ }), @@ -71856,8 +71941,8 @@ module.exports = atob.atob = atob; var fs = __webpack_require__(134); var path = __webpack_require__(4); -var define = __webpack_require__(594); -var utils = __webpack_require__(609); +var define = __webpack_require__(593); +var utils = __webpack_require__(608); /** * Expose `mixin()`. @@ -72006,13 +72091,13 @@ exports.comment = function(node) { "use strict"; -var use = __webpack_require__(602); +var use = __webpack_require__(601); var util = __webpack_require__(112); var Cache = __webpack_require__(630); -var define = __webpack_require__(594); -var debug = __webpack_require__(603)('snapdragon:parser'); +var define = __webpack_require__(593); +var debug = __webpack_require__(602)('snapdragon:parser'); var Position = __webpack_require__(631); -var utils = __webpack_require__(609); +var utils = __webpack_require__(608); /** * Create a new `Parser` with the given `input` and `options`. @@ -72653,7 +72738,7 @@ MapCache.prototype.del = function mapDelete(key) { "use strict"; -var define = __webpack_require__(594); +var define = __webpack_require__(593); /** * Store position for a node @@ -72674,96 +72759,8 @@ module.exports = function Position(start, parser) { "use strict"; -var isExtendable = __webpack_require__(633); -var assignSymbols = __webpack_require__(545); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } -} - -function isString(val) { - return (val && typeof val === 'string'); -} - -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; - } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); -} - -/** - * Returns true if the given `key` is an own property of `obj`. - */ - -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); -} - - -/***/ }), -/* 633 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isPlainObject = __webpack_require__(544); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; - - -/***/ }), -/* 634 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var nanomatch = __webpack_require__(635); -var extglob = __webpack_require__(647); +var nanomatch = __webpack_require__(633); +var extglob = __webpack_require__(643); module.exports = function(snapdragon) { var compilers = snapdragon.compiler.compilers; @@ -72840,7 +72837,7 @@ function escapeExtglobs(compiler) { /***/ }), -/* 635 */ +/* 633 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72851,17 +72848,17 @@ function escapeExtglobs(compiler) { */ var util = __webpack_require__(112); -var toRegex = __webpack_require__(529); -var extend = __webpack_require__(636); +var toRegex = __webpack_require__(530); +var extend = __webpack_require__(543); /** * Local dependencies */ -var compilers = __webpack_require__(638); -var parsers = __webpack_require__(639); -var cache = __webpack_require__(640); -var utils = __webpack_require__(642); +var compilers = __webpack_require__(634); +var parsers = __webpack_require__(635); +var cache = __webpack_require__(636); +var utils = __webpack_require__(638); var MAX_LENGTH = 1024 * 64; /** @@ -73685,95 +73682,7 @@ module.exports = nanomatch; /***/ }), -/* 636 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isExtendable = __webpack_require__(637); -var assignSymbols = __webpack_require__(545); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } -} - -function isString(val) { - return (val && typeof val === 'string'); -} - -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; - } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); -} - -/** - * Returns true if the given `key` is an own property of `obj`. - */ - -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); -} - - -/***/ }), -/* 637 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isPlainObject = __webpack_require__(544); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; - - -/***/ }), -/* 638 */ +/* 634 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74119,14 +74028,14 @@ module.exports = function(nanomatch, options) { /***/ }), -/* 639 */ +/* 635 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regexNot = __webpack_require__(546); -var toRegex = __webpack_require__(529); +var regexNot = __webpack_require__(547); +var toRegex = __webpack_require__(530); /** * Characters to use in negation regex (we want to "not" match @@ -74512,14 +74421,14 @@ module.exports.not = NOT_REGEX; /***/ }), -/* 640 */ +/* 636 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(641))(); +module.exports = new (__webpack_require__(637))(); /***/ }), -/* 641 */ +/* 637 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74654,7 +74563,7 @@ exports = module.exports = FragmentCache; /***/ }), -/* 642 */ +/* 638 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74667,14 +74576,14 @@ var path = __webpack_require__(4); * Module dependencies */ -var isWindows = __webpack_require__(643)(); -var Snapdragon = __webpack_require__(568); -utils.define = __webpack_require__(644); -utils.diff = __webpack_require__(645); -utils.extend = __webpack_require__(636); -utils.pick = __webpack_require__(646); -utils.typeOf = __webpack_require__(539); -utils.unique = __webpack_require__(549); +var isWindows = __webpack_require__(639)(); +var Snapdragon = __webpack_require__(566); +utils.define = __webpack_require__(640); +utils.diff = __webpack_require__(641); +utils.extend = __webpack_require__(543); +utils.pick = __webpack_require__(642); +utils.typeOf = __webpack_require__(540); +utils.unique = __webpack_require__(548); /** * Returns true if the given value is effectively an empty string @@ -75040,7 +74949,7 @@ utils.unixify = function(options) { /***/ }), -/* 643 */ +/* 639 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -75068,7 +74977,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 644 */ +/* 640 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75081,8 +74990,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -75113,7 +75022,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 645 */ +/* 641 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75167,7 +75076,7 @@ function diffArray(one, two) { /***/ }), -/* 646 */ +/* 642 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75180,7 +75089,7 @@ function diffArray(one, two) { -var isObject = __webpack_require__(537); +var isObject = __webpack_require__(538); module.exports = function pick(obj, keys) { if (!isObject(obj) && typeof obj !== 'function') { @@ -75209,7 +75118,7 @@ module.exports = function pick(obj, keys) { /***/ }), -/* 647 */ +/* 643 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75219,18 +75128,18 @@ module.exports = function pick(obj, keys) { * Module dependencies */ -var extend = __webpack_require__(550); -var unique = __webpack_require__(549); -var toRegex = __webpack_require__(529); +var extend = __webpack_require__(644); +var unique = __webpack_require__(548); +var toRegex = __webpack_require__(530); /** * Local dependencies */ -var compilers = __webpack_require__(648); -var parsers = __webpack_require__(659); -var Extglob = __webpack_require__(662); -var utils = __webpack_require__(661); +var compilers = __webpack_require__(645); +var parsers = __webpack_require__(657); +var Extglob = __webpack_require__(660); +var utils = __webpack_require__(659); var MAX_LENGTH = 1024 * 64; /** @@ -75547,13 +75456,53 @@ module.exports = extglob; /***/ }), -/* 648 */ +/* 644 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(550); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + +/***/ }), +/* 645 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(649); +var brackets = __webpack_require__(646); /** * Extglob compilers @@ -75723,7 +75672,7 @@ module.exports = function(extglob) { /***/ }), -/* 649 */ +/* 646 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75733,17 +75682,17 @@ module.exports = function(extglob) { * Local dependencies */ -var compilers = __webpack_require__(650); -var parsers = __webpack_require__(652); +var compilers = __webpack_require__(647); +var parsers = __webpack_require__(649); /** * Module dependencies */ -var debug = __webpack_require__(654)('expand-brackets'); -var extend = __webpack_require__(550); -var Snapdragon = __webpack_require__(568); -var toRegex = __webpack_require__(529); +var debug = __webpack_require__(651)('expand-brackets'); +var extend = __webpack_require__(656); +var Snapdragon = __webpack_require__(566); +var toRegex = __webpack_require__(530); /** * Parses the given POSIX character class `pattern` and returns a @@ -75941,13 +75890,13 @@ module.exports = brackets; /***/ }), -/* 650 */ +/* 647 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var posix = __webpack_require__(651); +var posix = __webpack_require__(648); module.exports = function(brackets) { brackets.compiler @@ -76035,7 +75984,7 @@ module.exports = function(brackets) { /***/ }), -/* 651 */ +/* 648 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76064,14 +76013,14 @@ module.exports = { /***/ }), -/* 652 */ +/* 649 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(653); -var define = __webpack_require__(594); +var utils = __webpack_require__(650); +var define = __webpack_require__(593); /** * Text regex @@ -76290,14 +76239,14 @@ module.exports.TEXT_REGEX = TEXT_REGEX; /***/ }), -/* 653 */ +/* 650 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var toRegex = __webpack_require__(529); -var regexNot = __webpack_require__(546); +var toRegex = __webpack_require__(530); +var regexNot = __webpack_require__(547); var cached; /** @@ -76331,7 +76280,7 @@ exports.createRegex = function(pattern, include) { /***/ }), -/* 654 */ +/* 651 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -76340,14 +76289,14 @@ exports.createRegex = function(pattern, include) { */ if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(655); + module.exports = __webpack_require__(652); } else { - module.exports = __webpack_require__(658); + module.exports = __webpack_require__(655); } /***/ }), -/* 655 */ +/* 652 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -76356,7 +76305,7 @@ if (typeof process !== 'undefined' && process.type === 'renderer') { * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(656); +exports = module.exports = __webpack_require__(653); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -76538,7 +76487,7 @@ function localstorage() { /***/ }), -/* 656 */ +/* 653 */ /***/ (function(module, exports, __webpack_require__) { @@ -76554,7 +76503,7 @@ exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; -exports.humanize = __webpack_require__(657); +exports.humanize = __webpack_require__(654); /** * The currently active debug mode names, and names to skip. @@ -76746,7 +76695,7 @@ function coerce(val) { /***/ }), -/* 657 */ +/* 654 */ /***/ (function(module, exports) { /** @@ -76904,7 +76853,7 @@ function plural(ms, n, name) { /***/ }), -/* 658 */ +/* 655 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -76920,7 +76869,7 @@ var util = __webpack_require__(112); * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(656); +exports = module.exports = __webpack_require__(653); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; @@ -77099,7 +77048,7 @@ function createWritableStdioStream (fd) { case 'PIPE': case 'TCP': - var net = __webpack_require__(608); + var net = __webpack_require__(607); stream = new net.Socket({ fd: fd, readable: false, @@ -77158,15 +77107,55 @@ exports.enable(load()); /***/ }), -/* 659 */ +/* 656 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(649); -var define = __webpack_require__(660); -var utils = __webpack_require__(661); +var isObject = __webpack_require__(550); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + +/***/ }), +/* 657 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var brackets = __webpack_require__(646); +var define = __webpack_require__(658); +var utils = __webpack_require__(659); /** * Characters to use in text regex (we want to "not" match @@ -77321,7 +77310,7 @@ module.exports = parsers; /***/ }), -/* 660 */ +/* 658 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77334,7 +77323,7 @@ module.exports = parsers; -var isDescriptor = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -77359,14 +77348,14 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 661 */ +/* 659 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regex = __webpack_require__(546); -var Cache = __webpack_require__(641); +var regex = __webpack_require__(547); +var Cache = __webpack_require__(637); /** * Utils @@ -77435,7 +77424,7 @@ utils.createRegex = function(str) { /***/ }), -/* 662 */ +/* 660 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77445,16 +77434,16 @@ utils.createRegex = function(str) { * Module dependencies */ -var Snapdragon = __webpack_require__(568); -var define = __webpack_require__(660); -var extend = __webpack_require__(550); +var Snapdragon = __webpack_require__(566); +var define = __webpack_require__(658); +var extend = __webpack_require__(644); /** * Local dependencies */ -var compilers = __webpack_require__(648); -var parsers = __webpack_require__(659); +var compilers = __webpack_require__(645); +var parsers = __webpack_require__(657); /** * Customize Snapdragon parser and renderer @@ -77520,16 +77509,16 @@ module.exports = Extglob; /***/ }), -/* 663 */ +/* 661 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extglob = __webpack_require__(647); -var nanomatch = __webpack_require__(635); -var regexNot = __webpack_require__(546); -var toRegex = __webpack_require__(529); +var extglob = __webpack_require__(643); +var nanomatch = __webpack_require__(633); +var regexNot = __webpack_require__(547); +var toRegex = __webpack_require__(530); var not; /** @@ -77610,14 +77599,14 @@ function textRegex(pattern) { /***/ }), -/* 664 */ +/* 662 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(641))(); +module.exports = new (__webpack_require__(637))(); /***/ }), -/* 665 */ +/* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77630,13 +77619,13 @@ var path = __webpack_require__(4); * Module dependencies */ -var Snapdragon = __webpack_require__(568); -utils.define = __webpack_require__(666); -utils.diff = __webpack_require__(645); -utils.extend = __webpack_require__(632); -utils.pick = __webpack_require__(646); -utils.typeOf = __webpack_require__(539); -utils.unique = __webpack_require__(549); +var Snapdragon = __webpack_require__(566); +utils.define = __webpack_require__(664); +utils.diff = __webpack_require__(641); +utils.extend = __webpack_require__(543); +utils.pick = __webpack_require__(642); +utils.typeOf = __webpack_require__(540); +utils.unique = __webpack_require__(548); /** * Returns true if the platform is windows, or `path.sep` is `\\`. @@ -77933,7 +77922,7 @@ utils.unixify = function(options) { /***/ }), -/* 666 */ +/* 664 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77946,8 +77935,8 @@ utils.unixify = function(options) { -var isobject = __webpack_require__(537); -var isDescriptor = __webpack_require__(538); +var isobject = __webpack_require__(538); +var isDescriptor = __webpack_require__(539); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -77978,97 +77967,97 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 667 */ +/* 665 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(668); -var reader_1 = __webpack_require__(681); -var fs_stream_1 = __webpack_require__(685); -var ReaderAsync = /** @class */ (function (_super) { - __extends(ReaderAsync, _super); - function ReaderAsync() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(ReaderAsync.prototype, "fsAdapter", { - /** - * Returns FileSystem adapter. - */ - get: function () { - return new fs_stream_1.default(this.options); - }, - enumerable: true, - configurable: true - }); - /** - * Use async API to read entries for Task. - */ - ReaderAsync.prototype.read = function (task) { - var _this = this; - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - var entries = []; - return new Promise(function (resolve, reject) { - var stream = _this.api(root, task, options); - stream.on('error', function (err) { - _this.isEnoentCodeError(err) ? resolve([]) : reject(err); - stream.pause(); - }); - stream.on('data', function (entry) { return entries.push(_this.transform(entry)); }); - stream.on('end', function () { return resolve(entries); }); - }); - }; - /** - * Returns founded paths. - */ - ReaderAsync.prototype.api = function (root, task, options) { - if (task.dynamic) { - return this.dynamicApi(root, options); - } - return this.staticApi(task, options); - }; - /** - * Api for dynamic tasks. - */ - ReaderAsync.prototype.dynamicApi = function (root, options) { - return readdir.readdirStreamStat(root, options); - }; - /** - * Api for static tasks. - */ - ReaderAsync.prototype.staticApi = function (task, options) { - return this.fsAdapter.read(task.patterns, options.filter); - }; - return ReaderAsync; -}(reader_1.default)); -exports.default = ReaderAsync; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var readdir = __webpack_require__(666); +var reader_1 = __webpack_require__(679); +var fs_stream_1 = __webpack_require__(683); +var ReaderAsync = /** @class */ (function (_super) { + __extends(ReaderAsync, _super); + function ReaderAsync() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ReaderAsync.prototype, "fsAdapter", { + /** + * Returns FileSystem adapter. + */ + get: function () { + return new fs_stream_1.default(this.options); + }, + enumerable: true, + configurable: true + }); + /** + * Use async API to read entries for Task. + */ + ReaderAsync.prototype.read = function (task) { + var _this = this; + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + var entries = []; + return new Promise(function (resolve, reject) { + var stream = _this.api(root, task, options); + stream.on('error', function (err) { + _this.isEnoentCodeError(err) ? resolve([]) : reject(err); + stream.pause(); + }); + stream.on('data', function (entry) { return entries.push(_this.transform(entry)); }); + stream.on('end', function () { return resolve(entries); }); + }); + }; + /** + * Returns founded paths. + */ + ReaderAsync.prototype.api = function (root, task, options) { + if (task.dynamic) { + return this.dynamicApi(root, options); + } + return this.staticApi(task, options); + }; + /** + * Api for dynamic tasks. + */ + ReaderAsync.prototype.dynamicApi = function (root, options) { + return readdir.readdirStreamStat(root, options); + }; + /** + * Api for static tasks. + */ + ReaderAsync.prototype.staticApi = function (task, options) { + return this.fsAdapter.read(task.patterns, options.filter); + }; + return ReaderAsync; +}(reader_1.default)); +exports.default = ReaderAsync; /***/ }), -/* 668 */ +/* 666 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readdirSync = __webpack_require__(669); -const readdirAsync = __webpack_require__(677); -const readdirStream = __webpack_require__(680); +const readdirSync = __webpack_require__(667); +const readdirAsync = __webpack_require__(675); +const readdirStream = __webpack_require__(678); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; @@ -78152,7 +78141,7 @@ function readdirStreamStat (dir, options) { /***/ }), -/* 669 */ +/* 667 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78160,11 +78149,11 @@ function readdirStreamStat (dir, options) { module.exports = readdirSync; -const DirectoryReader = __webpack_require__(670); +const DirectoryReader = __webpack_require__(668); let syncFacade = { - fs: __webpack_require__(675), - forEach: __webpack_require__(676), + fs: __webpack_require__(673), + forEach: __webpack_require__(674), sync: true }; @@ -78193,18 +78182,18 @@ function readdirSync (dir, options, internalOptions) { /***/ }), -/* 670 */ +/* 668 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const Readable = __webpack_require__(138).Readable; -const EventEmitter = __webpack_require__(156).EventEmitter; +const EventEmitter = __webpack_require__(157).EventEmitter; const path = __webpack_require__(4); -const normalizeOptions = __webpack_require__(671); -const stat = __webpack_require__(673); -const call = __webpack_require__(674); +const normalizeOptions = __webpack_require__(669); +const stat = __webpack_require__(671); +const call = __webpack_require__(672); /** * Asynchronously reads the contents of a directory and streams the results @@ -78580,14 +78569,14 @@ module.exports = DirectoryReader; /***/ }), -/* 671 */ +/* 669 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const globToRegExp = __webpack_require__(672); +const globToRegExp = __webpack_require__(670); module.exports = normalizeOptions; @@ -78764,7 +78753,7 @@ function normalizeOptions (options, internalOptions) { /***/ }), -/* 672 */ +/* 670 */ /***/ (function(module, exports) { module.exports = function (glob, opts) { @@ -78901,13 +78890,13 @@ module.exports = function (glob, opts) { /***/ }), -/* 673 */ +/* 671 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const call = __webpack_require__(674); +const call = __webpack_require__(672); module.exports = stat; @@ -78982,7 +78971,7 @@ function symlinkStat (fs, path, lstats, callback) { /***/ }), -/* 674 */ +/* 672 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79043,14 +79032,14 @@ function callOnce (fn) { /***/ }), -/* 675 */ +/* 673 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const call = __webpack_require__(674); +const call = __webpack_require__(672); /** * A facade around {@link fs.readdirSync} that allows it to be called @@ -79114,7 +79103,7 @@ exports.lstat = function (path, callback) { /***/ }), -/* 676 */ +/* 674 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79143,7 +79132,7 @@ function syncForEach (array, iterator, done) { /***/ }), -/* 677 */ +/* 675 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79151,12 +79140,12 @@ function syncForEach (array, iterator, done) { module.exports = readdirAsync; -const maybe = __webpack_require__(678); -const DirectoryReader = __webpack_require__(670); +const maybe = __webpack_require__(676); +const DirectoryReader = __webpack_require__(668); let asyncFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(679), + forEach: __webpack_require__(677), async: true }; @@ -79198,7 +79187,7 @@ function readdirAsync (dir, options, callback, internalOptions) { /***/ }), -/* 678 */ +/* 676 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79225,7 +79214,7 @@ module.exports = function maybe (cb, promise) { /***/ }), -/* 679 */ +/* 677 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79261,7 +79250,7 @@ function asyncForEach (array, iterator, done) { /***/ }), -/* 680 */ +/* 678 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79269,11 +79258,11 @@ function asyncForEach (array, iterator, done) { module.exports = readdirStream; -const DirectoryReader = __webpack_require__(670); +const DirectoryReader = __webpack_require__(668); let streamFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(679), + forEach: __webpack_require__(677), async: true }; @@ -79293,373 +79282,373 @@ function readdirStream (dir, options, internalOptions) { /***/ }), -/* 681 */ +/* 679 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var path = __webpack_require__(4); -var deep_1 = __webpack_require__(682); -var entry_1 = __webpack_require__(684); -var pathUtil = __webpack_require__(683); -var Reader = /** @class */ (function () { - function Reader(options) { - this.options = options; - this.micromatchOptions = this.getMicromatchOptions(); - this.entryFilter = new entry_1.default(options, this.micromatchOptions); - this.deepFilter = new deep_1.default(options, this.micromatchOptions); - } - /** - * Returns root path to scanner. - */ - Reader.prototype.getRootDirectory = function (task) { - return path.resolve(this.options.cwd, task.base); - }; - /** - * Returns options for reader. - */ - Reader.prototype.getReaderOptions = function (task) { - return { - basePath: task.base === '.' ? '' : task.base, - filter: this.entryFilter.getFilter(task.positive, task.negative), - deep: this.deepFilter.getFilter(task.positive, task.negative), - sep: '/' - }; - }; - /** - * Returns options for micromatch. - */ - Reader.prototype.getMicromatchOptions = function () { - return { - dot: this.options.dot, - nobrace: !this.options.brace, - noglobstar: !this.options.globstar, - noext: !this.options.extension, - nocase: !this.options.case, - matchBase: this.options.matchBase - }; - }; - /** - * Returns transformed entry. - */ - Reader.prototype.transform = function (entry) { - if (this.options.absolute) { - entry.path = pathUtil.makeAbsolute(this.options.cwd, entry.path); - } - if (this.options.markDirectories && entry.isDirectory()) { - entry.path += '/'; - } - var item = this.options.stats ? entry : entry.path; - if (this.options.transform === null) { - return item; - } - return this.options.transform(item); - }; - /** - * Returns true if error has ENOENT code. - */ - Reader.prototype.isEnoentCodeError = function (err) { - return err.code === 'ENOENT'; - }; - return Reader; -}()); -exports.default = Reader; + +Object.defineProperty(exports, "__esModule", { value: true }); +var path = __webpack_require__(4); +var deep_1 = __webpack_require__(680); +var entry_1 = __webpack_require__(682); +var pathUtil = __webpack_require__(681); +var Reader = /** @class */ (function () { + function Reader(options) { + this.options = options; + this.micromatchOptions = this.getMicromatchOptions(); + this.entryFilter = new entry_1.default(options, this.micromatchOptions); + this.deepFilter = new deep_1.default(options, this.micromatchOptions); + } + /** + * Returns root path to scanner. + */ + Reader.prototype.getRootDirectory = function (task) { + return path.resolve(this.options.cwd, task.base); + }; + /** + * Returns options for reader. + */ + Reader.prototype.getReaderOptions = function (task) { + return { + basePath: task.base === '.' ? '' : task.base, + filter: this.entryFilter.getFilter(task.positive, task.negative), + deep: this.deepFilter.getFilter(task.positive, task.negative), + sep: '/' + }; + }; + /** + * Returns options for micromatch. + */ + Reader.prototype.getMicromatchOptions = function () { + return { + dot: this.options.dot, + nobrace: !this.options.brace, + noglobstar: !this.options.globstar, + noext: !this.options.extension, + nocase: !this.options.case, + matchBase: this.options.matchBase + }; + }; + /** + * Returns transformed entry. + */ + Reader.prototype.transform = function (entry) { + if (this.options.absolute) { + entry.path = pathUtil.makeAbsolute(this.options.cwd, entry.path); + } + if (this.options.markDirectories && entry.isDirectory()) { + entry.path += '/'; + } + var item = this.options.stats ? entry : entry.path; + if (this.options.transform === null) { + return item; + } + return this.options.transform(item); + }; + /** + * Returns true if error has ENOENT code. + */ + Reader.prototype.isEnoentCodeError = function (err) { + return err.code === 'ENOENT'; + }; + return Reader; +}()); +exports.default = Reader; /***/ }), -/* 682 */ +/* 680 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(683); -var patternUtils = __webpack_require__(526); -var DeepFilter = /** @class */ (function () { - function DeepFilter(options, micromatchOptions) { - this.options = options; - this.micromatchOptions = micromatchOptions; - } - /** - * Returns filter for directories. - */ - DeepFilter.prototype.getFilter = function (positive, negative) { - var _this = this; - var maxPatternDepth = this.getMaxPatternDepth(positive); - var negativeRe = this.getNegativePatternsRe(negative); - return function (entry) { return _this.filter(entry, negativeRe, maxPatternDepth); }; - }; - /** - * Returns max depth of the provided patterns. - */ - DeepFilter.prototype.getMaxPatternDepth = function (patterns) { - var globstar = patterns.some(patternUtils.hasGlobStar); - return globstar ? Infinity : patternUtils.getMaxNaivePatternsDepth(patterns); - }; - /** - * Returns RegExp's for patterns that can affect the depth of reading. - */ - DeepFilter.prototype.getNegativePatternsRe = function (patterns) { - var affectDepthOfReadingPatterns = patterns.filter(patternUtils.isAffectDepthOfReadingPattern); - return patternUtils.convertPatternsToRe(affectDepthOfReadingPatterns, this.micromatchOptions); - }; - /** - * Returns «true» for directory that should be read. - */ - DeepFilter.prototype.filter = function (entry, negativeRe, maxPatternDepth) { - if (this.isSkippedByDeepOption(entry.depth)) { - return false; - } - if (this.isSkippedByMaxPatternDepth(entry.depth, maxPatternDepth)) { - return false; - } - if (this.isSkippedSymlinkedDirectory(entry)) { - return false; - } - if (this.isSkippedDotDirectory(entry)) { - return false; - } - return this.isSkippedByNegativePatterns(entry, negativeRe); - }; - /** - * Returns «true» when the «deep» option is disabled or number and depth of the entry is greater that the option value. - */ - DeepFilter.prototype.isSkippedByDeepOption = function (entryDepth) { - return !this.options.deep || (typeof this.options.deep === 'number' && entryDepth >= this.options.deep); - }; - /** - * Returns «true» when depth parameter is not an Infinity and entry depth greater that the parameter value. - */ - DeepFilter.prototype.isSkippedByMaxPatternDepth = function (entryDepth, maxPatternDepth) { - return maxPatternDepth !== Infinity && entryDepth >= maxPatternDepth; - }; - /** - * Returns «true» for symlinked directory if the «followSymlinkedDirectories» option is disabled. - */ - DeepFilter.prototype.isSkippedSymlinkedDirectory = function (entry) { - return !this.options.followSymlinkedDirectories && entry.isSymbolicLink(); - }; - /** - * Returns «true» for a directory whose name starts with a period if «dot» option is disabled. - */ - DeepFilter.prototype.isSkippedDotDirectory = function (entry) { - return !this.options.dot && pathUtils.isDotDirectory(entry.path); - }; - /** - * Returns «true» for a directory whose path math to any negative pattern. - */ - DeepFilter.prototype.isSkippedByNegativePatterns = function (entry, negativeRe) { - return !patternUtils.matchAny(entry.path, negativeRe); - }; - return DeepFilter; -}()); -exports.default = DeepFilter; + +Object.defineProperty(exports, "__esModule", { value: true }); +var pathUtils = __webpack_require__(681); +var patternUtils = __webpack_require__(527); +var DeepFilter = /** @class */ (function () { + function DeepFilter(options, micromatchOptions) { + this.options = options; + this.micromatchOptions = micromatchOptions; + } + /** + * Returns filter for directories. + */ + DeepFilter.prototype.getFilter = function (positive, negative) { + var _this = this; + var maxPatternDepth = this.getMaxPatternDepth(positive); + var negativeRe = this.getNegativePatternsRe(negative); + return function (entry) { return _this.filter(entry, negativeRe, maxPatternDepth); }; + }; + /** + * Returns max depth of the provided patterns. + */ + DeepFilter.prototype.getMaxPatternDepth = function (patterns) { + var globstar = patterns.some(patternUtils.hasGlobStar); + return globstar ? Infinity : patternUtils.getMaxNaivePatternsDepth(patterns); + }; + /** + * Returns RegExp's for patterns that can affect the depth of reading. + */ + DeepFilter.prototype.getNegativePatternsRe = function (patterns) { + var affectDepthOfReadingPatterns = patterns.filter(patternUtils.isAffectDepthOfReadingPattern); + return patternUtils.convertPatternsToRe(affectDepthOfReadingPatterns, this.micromatchOptions); + }; + /** + * Returns «true» for directory that should be read. + */ + DeepFilter.prototype.filter = function (entry, negativeRe, maxPatternDepth) { + if (this.isSkippedByDeepOption(entry.depth)) { + return false; + } + if (this.isSkippedByMaxPatternDepth(entry.depth, maxPatternDepth)) { + return false; + } + if (this.isSkippedSymlinkedDirectory(entry)) { + return false; + } + if (this.isSkippedDotDirectory(entry)) { + return false; + } + return this.isSkippedByNegativePatterns(entry, negativeRe); + }; + /** + * Returns «true» when the «deep» option is disabled or number and depth of the entry is greater that the option value. + */ + DeepFilter.prototype.isSkippedByDeepOption = function (entryDepth) { + return !this.options.deep || (typeof this.options.deep === 'number' && entryDepth >= this.options.deep); + }; + /** + * Returns «true» when depth parameter is not an Infinity and entry depth greater that the parameter value. + */ + DeepFilter.prototype.isSkippedByMaxPatternDepth = function (entryDepth, maxPatternDepth) { + return maxPatternDepth !== Infinity && entryDepth >= maxPatternDepth; + }; + /** + * Returns «true» for symlinked directory if the «followSymlinkedDirectories» option is disabled. + */ + DeepFilter.prototype.isSkippedSymlinkedDirectory = function (entry) { + return !this.options.followSymlinkedDirectories && entry.isSymbolicLink(); + }; + /** + * Returns «true» for a directory whose name starts with a period if «dot» option is disabled. + */ + DeepFilter.prototype.isSkippedDotDirectory = function (entry) { + return !this.options.dot && pathUtils.isDotDirectory(entry.path); + }; + /** + * Returns «true» for a directory whose path math to any negative pattern. + */ + DeepFilter.prototype.isSkippedByNegativePatterns = function (entry, negativeRe) { + return !patternUtils.matchAny(entry.path, negativeRe); + }; + return DeepFilter; +}()); +exports.default = DeepFilter; /***/ }), -/* 683 */ +/* 681 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var path = __webpack_require__(4); -/** - * Returns «true» if the last partial of the path starting with a period. - */ -function isDotDirectory(filepath) { - return path.basename(filepath).startsWith('.'); -} -exports.isDotDirectory = isDotDirectory; -/** - * Convert a windows-like path to a unix-style path. - */ -function normalize(filepath) { - return filepath.replace(/\\/g, '/'); -} -exports.normalize = normalize; -/** - * Returns normalized absolute path of provided filepath. - */ -function makeAbsolute(cwd, filepath) { - return normalize(path.resolve(cwd, filepath)); -} -exports.makeAbsolute = makeAbsolute; + +Object.defineProperty(exports, "__esModule", { value: true }); +var path = __webpack_require__(4); +/** + * Returns «true» if the last partial of the path starting with a period. + */ +function isDotDirectory(filepath) { + return path.basename(filepath).startsWith('.'); +} +exports.isDotDirectory = isDotDirectory; +/** + * Convert a windows-like path to a unix-style path. + */ +function normalize(filepath) { + return filepath.replace(/\\/g, '/'); +} +exports.normalize = normalize; +/** + * Returns normalized absolute path of provided filepath. + */ +function makeAbsolute(cwd, filepath) { + return normalize(path.resolve(cwd, filepath)); +} +exports.makeAbsolute = makeAbsolute; /***/ }), -/* 684 */ +/* 682 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(683); -var patternUtils = __webpack_require__(526); -var EntryFilter = /** @class */ (function () { - function EntryFilter(options, micromatchOptions) { - this.options = options; - this.micromatchOptions = micromatchOptions; - this.index = new Map(); - } - /** - * Returns filter for directories. - */ - EntryFilter.prototype.getFilter = function (positive, negative) { - var _this = this; - var positiveRe = patternUtils.convertPatternsToRe(positive, this.micromatchOptions); - var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); - return function (entry) { return _this.filter(entry, positiveRe, negativeRe); }; - }; - /** - * Returns true if entry must be added to result. - */ - EntryFilter.prototype.filter = function (entry, positiveRe, negativeRe) { - // Exclude duplicate results - if (this.options.unique) { - if (this.isDuplicateEntry(entry)) { - return false; - } - this.createIndexRecord(entry); - } - // Filter files and directories by options - if (this.onlyFileFilter(entry) || this.onlyDirectoryFilter(entry)) { - return false; - } - if (this.isSkippedByAbsoluteNegativePatterns(entry, negativeRe)) { - return false; - } - return this.isMatchToPatterns(entry.path, positiveRe) && !this.isMatchToPatterns(entry.path, negativeRe); - }; - /** - * Return true if the entry already has in the cross reader index. - */ - EntryFilter.prototype.isDuplicateEntry = function (entry) { - return this.index.has(entry.path); - }; - /** - * Create record in the cross reader index. - */ - EntryFilter.prototype.createIndexRecord = function (entry) { - this.index.set(entry.path, undefined); - }; - /** - * Returns true for non-files if the «onlyFiles» option is enabled. - */ - EntryFilter.prototype.onlyFileFilter = function (entry) { - return this.options.onlyFiles && !entry.isFile(); - }; - /** - * Returns true for non-directories if the «onlyDirectories» option is enabled. - */ - EntryFilter.prototype.onlyDirectoryFilter = function (entry) { - return this.options.onlyDirectories && !entry.isDirectory(); - }; - /** - * Return true when `absolute` option is enabled and matched to the negative patterns. - */ - EntryFilter.prototype.isSkippedByAbsoluteNegativePatterns = function (entry, negativeRe) { - if (!this.options.absolute) { - return false; - } - var fullpath = pathUtils.makeAbsolute(this.options.cwd, entry.path); - return this.isMatchToPatterns(fullpath, negativeRe); - }; - /** - * Return true when entry match to provided patterns. - * - * First, just trying to apply patterns to the path. - * Second, trying to apply patterns to the path with final slash (need to micromatch to support «directory/**» patterns). - */ - EntryFilter.prototype.isMatchToPatterns = function (filepath, patternsRe) { - return patternUtils.matchAny(filepath, patternsRe) || patternUtils.matchAny(filepath + '/', patternsRe); - }; - return EntryFilter; -}()); -exports.default = EntryFilter; + +Object.defineProperty(exports, "__esModule", { value: true }); +var pathUtils = __webpack_require__(681); +var patternUtils = __webpack_require__(527); +var EntryFilter = /** @class */ (function () { + function EntryFilter(options, micromatchOptions) { + this.options = options; + this.micromatchOptions = micromatchOptions; + this.index = new Map(); + } + /** + * Returns filter for directories. + */ + EntryFilter.prototype.getFilter = function (positive, negative) { + var _this = this; + var positiveRe = patternUtils.convertPatternsToRe(positive, this.micromatchOptions); + var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); + return function (entry) { return _this.filter(entry, positiveRe, negativeRe); }; + }; + /** + * Returns true if entry must be added to result. + */ + EntryFilter.prototype.filter = function (entry, positiveRe, negativeRe) { + // Exclude duplicate results + if (this.options.unique) { + if (this.isDuplicateEntry(entry)) { + return false; + } + this.createIndexRecord(entry); + } + // Filter files and directories by options + if (this.onlyFileFilter(entry) || this.onlyDirectoryFilter(entry)) { + return false; + } + if (this.isSkippedByAbsoluteNegativePatterns(entry, negativeRe)) { + return false; + } + return this.isMatchToPatterns(entry.path, positiveRe) && !this.isMatchToPatterns(entry.path, negativeRe); + }; + /** + * Return true if the entry already has in the cross reader index. + */ + EntryFilter.prototype.isDuplicateEntry = function (entry) { + return this.index.has(entry.path); + }; + /** + * Create record in the cross reader index. + */ + EntryFilter.prototype.createIndexRecord = function (entry) { + this.index.set(entry.path, undefined); + }; + /** + * Returns true for non-files if the «onlyFiles» option is enabled. + */ + EntryFilter.prototype.onlyFileFilter = function (entry) { + return this.options.onlyFiles && !entry.isFile(); + }; + /** + * Returns true for non-directories if the «onlyDirectories» option is enabled. + */ + EntryFilter.prototype.onlyDirectoryFilter = function (entry) { + return this.options.onlyDirectories && !entry.isDirectory(); + }; + /** + * Return true when `absolute` option is enabled and matched to the negative patterns. + */ + EntryFilter.prototype.isSkippedByAbsoluteNegativePatterns = function (entry, negativeRe) { + if (!this.options.absolute) { + return false; + } + var fullpath = pathUtils.makeAbsolute(this.options.cwd, entry.path); + return this.isMatchToPatterns(fullpath, negativeRe); + }; + /** + * Return true when entry match to provided patterns. + * + * First, just trying to apply patterns to the path. + * Second, trying to apply patterns to the path with final slash (need to micromatch to support «directory/**» patterns). + */ + EntryFilter.prototype.isMatchToPatterns = function (filepath, patternsRe) { + return patternUtils.matchAny(filepath, patternsRe) || patternUtils.matchAny(filepath + '/', patternsRe); + }; + return EntryFilter; +}()); +exports.default = EntryFilter; /***/ }), -/* 685 */ +/* 683 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var stream = __webpack_require__(138); -var fsStat = __webpack_require__(686); -var fs_1 = __webpack_require__(690); -var FileSystemStream = /** @class */ (function (_super) { - __extends(FileSystemStream, _super); - function FileSystemStream() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * Use stream API to read entries for Task. - */ - FileSystemStream.prototype.read = function (patterns, filter) { - var _this = this; - var filepaths = patterns.map(this.getFullEntryPath, this); - var transform = new stream.Transform({ objectMode: true }); - transform._transform = function (index, _enc, done) { - return _this.getEntry(filepaths[index], patterns[index]).then(function (entry) { - if (entry !== null && filter(entry)) { - transform.push(entry); - } - if (index === filepaths.length - 1) { - transform.end(); - } - done(); - }); - }; - for (var i = 0; i < filepaths.length; i++) { - transform.write(i); - } - return transform; - }; - /** - * Return entry for the provided path. - */ - FileSystemStream.prototype.getEntry = function (filepath, pattern) { - var _this = this; - return this.getStat(filepath) - .then(function (stat) { return _this.makeEntry(stat, pattern); }) - .catch(function () { return null; }); - }; - /** - * Return fs.Stats for the provided path. - */ - FileSystemStream.prototype.getStat = function (filepath) { - return fsStat.stat(filepath, { throwErrorOnBrokenSymlinks: false }); - }; - return FileSystemStream; -}(fs_1.default)); -exports.default = FileSystemStream; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var stream = __webpack_require__(138); +var fsStat = __webpack_require__(684); +var fs_1 = __webpack_require__(688); +var FileSystemStream = /** @class */ (function (_super) { + __extends(FileSystemStream, _super); + function FileSystemStream() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Use stream API to read entries for Task. + */ + FileSystemStream.prototype.read = function (patterns, filter) { + var _this = this; + var filepaths = patterns.map(this.getFullEntryPath, this); + var transform = new stream.Transform({ objectMode: true }); + transform._transform = function (index, _enc, done) { + return _this.getEntry(filepaths[index], patterns[index]).then(function (entry) { + if (entry !== null && filter(entry)) { + transform.push(entry); + } + if (index === filepaths.length - 1) { + transform.end(); + } + done(); + }); + }; + for (var i = 0; i < filepaths.length; i++) { + transform.write(i); + } + return transform; + }; + /** + * Return entry for the provided path. + */ + FileSystemStream.prototype.getEntry = function (filepath, pattern) { + var _this = this; + return this.getStat(filepath) + .then(function (stat) { return _this.makeEntry(stat, pattern); }) + .catch(function () { return null; }); + }; + /** + * Return fs.Stats for the provided path. + */ + FileSystemStream.prototype.getStat = function (filepath) { + return fsStat.stat(filepath, { throwErrorOnBrokenSymlinks: false }); + }; + return FileSystemStream; +}(fs_1.default)); +exports.default = FileSystemStream; /***/ }), -/* 686 */ +/* 684 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const optionsManager = __webpack_require__(687); -const statProvider = __webpack_require__(689); +const optionsManager = __webpack_require__(685); +const statProvider = __webpack_require__(687); /** * Asynchronous API. */ @@ -79690,13 +79679,13 @@ exports.statSync = statSync; /***/ }), -/* 687 */ +/* 685 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsAdapter = __webpack_require__(688); +const fsAdapter = __webpack_require__(686); function prepare(opts) { const options = Object.assign({ fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined), @@ -79709,7 +79698,7 @@ exports.prepare = prepare; /***/ }), -/* 688 */ +/* 686 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79732,7 +79721,7 @@ exports.getFileSystemAdapter = getFileSystemAdapter; /***/ }), -/* 689 */ +/* 687 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79784,318 +79773,318 @@ exports.isFollowedSymlink = isFollowedSymlink; /***/ }), -/* 690 */ +/* 688 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var path = __webpack_require__(4); -var FileSystem = /** @class */ (function () { - function FileSystem(options) { - this.options = options; - } - /** - * Return full path to entry. - */ - FileSystem.prototype.getFullEntryPath = function (filepath) { - return path.resolve(this.options.cwd, filepath); - }; - /** - * Return an implementation of the Entry interface. - */ - FileSystem.prototype.makeEntry = function (stat, pattern) { - stat.path = pattern; - stat.depth = pattern.split('/').length; - return stat; - }; - return FileSystem; -}()); -exports.default = FileSystem; + +Object.defineProperty(exports, "__esModule", { value: true }); +var path = __webpack_require__(4); +var FileSystem = /** @class */ (function () { + function FileSystem(options) { + this.options = options; + } + /** + * Return full path to entry. + */ + FileSystem.prototype.getFullEntryPath = function (filepath) { + return path.resolve(this.options.cwd, filepath); + }; + /** + * Return an implementation of the Entry interface. + */ + FileSystem.prototype.makeEntry = function (stat, pattern) { + stat.path = pattern; + stat.depth = pattern.split('/').length; + return stat; + }; + return FileSystem; +}()); +exports.default = FileSystem; /***/ }), -/* 691 */ +/* 689 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var stream = __webpack_require__(138); -var readdir = __webpack_require__(668); -var reader_1 = __webpack_require__(681); -var fs_stream_1 = __webpack_require__(685); -var TransformStream = /** @class */ (function (_super) { - __extends(TransformStream, _super); - function TransformStream(reader) { - var _this = _super.call(this, { objectMode: true }) || this; - _this.reader = reader; - return _this; - } - TransformStream.prototype._transform = function (entry, _encoding, callback) { - callback(null, this.reader.transform(entry)); - }; - return TransformStream; -}(stream.Transform)); -var ReaderStream = /** @class */ (function (_super) { - __extends(ReaderStream, _super); - function ReaderStream() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(ReaderStream.prototype, "fsAdapter", { - /** - * Returns FileSystem adapter. - */ - get: function () { - return new fs_stream_1.default(this.options); - }, - enumerable: true, - configurable: true - }); - /** - * Use stream API to read entries for Task. - */ - ReaderStream.prototype.read = function (task) { - var _this = this; - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - var transform = new TransformStream(this); - var readable = this.api(root, task, options); - return readable - .on('error', function (err) { return _this.isEnoentCodeError(err) ? null : transform.emit('error', err); }) - .pipe(transform); - }; - /** - * Returns founded paths. - */ - ReaderStream.prototype.api = function (root, task, options) { - if (task.dynamic) { - return this.dynamicApi(root, options); - } - return this.staticApi(task, options); - }; - /** - * Api for dynamic tasks. - */ - ReaderStream.prototype.dynamicApi = function (root, options) { - return readdir.readdirStreamStat(root, options); - }; - /** - * Api for static tasks. - */ - ReaderStream.prototype.staticApi = function (task, options) { - return this.fsAdapter.read(task.patterns, options.filter); - }; - return ReaderStream; -}(reader_1.default)); -exports.default = ReaderStream; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var stream = __webpack_require__(138); +var readdir = __webpack_require__(666); +var reader_1 = __webpack_require__(679); +var fs_stream_1 = __webpack_require__(683); +var TransformStream = /** @class */ (function (_super) { + __extends(TransformStream, _super); + function TransformStream(reader) { + var _this = _super.call(this, { objectMode: true }) || this; + _this.reader = reader; + return _this; + } + TransformStream.prototype._transform = function (entry, _encoding, callback) { + callback(null, this.reader.transform(entry)); + }; + return TransformStream; +}(stream.Transform)); +var ReaderStream = /** @class */ (function (_super) { + __extends(ReaderStream, _super); + function ReaderStream() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ReaderStream.prototype, "fsAdapter", { + /** + * Returns FileSystem adapter. + */ + get: function () { + return new fs_stream_1.default(this.options); + }, + enumerable: true, + configurable: true + }); + /** + * Use stream API to read entries for Task. + */ + ReaderStream.prototype.read = function (task) { + var _this = this; + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + var transform = new TransformStream(this); + var readable = this.api(root, task, options); + return readable + .on('error', function (err) { return _this.isEnoentCodeError(err) ? null : transform.emit('error', err); }) + .pipe(transform); + }; + /** + * Returns founded paths. + */ + ReaderStream.prototype.api = function (root, task, options) { + if (task.dynamic) { + return this.dynamicApi(root, options); + } + return this.staticApi(task, options); + }; + /** + * Api for dynamic tasks. + */ + ReaderStream.prototype.dynamicApi = function (root, options) { + return readdir.readdirStreamStat(root, options); + }; + /** + * Api for static tasks. + */ + ReaderStream.prototype.staticApi = function (task, options) { + return this.fsAdapter.read(task.patterns, options.filter); + }; + return ReaderStream; +}(reader_1.default)); +exports.default = ReaderStream; /***/ }), -/* 692 */ +/* 690 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(668); -var reader_1 = __webpack_require__(681); -var fs_sync_1 = __webpack_require__(693); -var ReaderSync = /** @class */ (function (_super) { - __extends(ReaderSync, _super); - function ReaderSync() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(ReaderSync.prototype, "fsAdapter", { - /** - * Returns FileSystem adapter. - */ - get: function () { - return new fs_sync_1.default(this.options); - }, - enumerable: true, - configurable: true - }); - /** - * Use sync API to read entries for Task. - */ - ReaderSync.prototype.read = function (task) { - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - try { - var entries = this.api(root, task, options); - return entries.map(this.transform, this); - } - catch (err) { - if (this.isEnoentCodeError(err)) { - return []; - } - throw err; - } - }; - /** - * Returns founded paths. - */ - ReaderSync.prototype.api = function (root, task, options) { - if (task.dynamic) { - return this.dynamicApi(root, options); - } - return this.staticApi(task, options); - }; - /** - * Api for dynamic tasks. - */ - ReaderSync.prototype.dynamicApi = function (root, options) { - return readdir.readdirSyncStat(root, options); - }; - /** - * Api for static tasks. - */ - ReaderSync.prototype.staticApi = function (task, options) { - return this.fsAdapter.read(task.patterns, options.filter); - }; - return ReaderSync; -}(reader_1.default)); -exports.default = ReaderSync; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var readdir = __webpack_require__(666); +var reader_1 = __webpack_require__(679); +var fs_sync_1 = __webpack_require__(691); +var ReaderSync = /** @class */ (function (_super) { + __extends(ReaderSync, _super); + function ReaderSync() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ReaderSync.prototype, "fsAdapter", { + /** + * Returns FileSystem adapter. + */ + get: function () { + return new fs_sync_1.default(this.options); + }, + enumerable: true, + configurable: true + }); + /** + * Use sync API to read entries for Task. + */ + ReaderSync.prototype.read = function (task) { + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + try { + var entries = this.api(root, task, options); + return entries.map(this.transform, this); + } + catch (err) { + if (this.isEnoentCodeError(err)) { + return []; + } + throw err; + } + }; + /** + * Returns founded paths. + */ + ReaderSync.prototype.api = function (root, task, options) { + if (task.dynamic) { + return this.dynamicApi(root, options); + } + return this.staticApi(task, options); + }; + /** + * Api for dynamic tasks. + */ + ReaderSync.prototype.dynamicApi = function (root, options) { + return readdir.readdirSyncStat(root, options); + }; + /** + * Api for static tasks. + */ + ReaderSync.prototype.staticApi = function (task, options) { + return this.fsAdapter.read(task.patterns, options.filter); + }; + return ReaderSync; +}(reader_1.default)); +exports.default = ReaderSync; /***/ }), -/* 693 */ +/* 691 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var fsStat = __webpack_require__(686); -var fs_1 = __webpack_require__(690); -var FileSystemSync = /** @class */ (function (_super) { - __extends(FileSystemSync, _super); - function FileSystemSync() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * Use sync API to read entries for Task. - */ - FileSystemSync.prototype.read = function (patterns, filter) { - var _this = this; - var entries = []; - patterns.forEach(function (pattern) { - var filepath = _this.getFullEntryPath(pattern); - var entry = _this.getEntry(filepath, pattern); - if (entry === null || !filter(entry)) { - return; - } - entries.push(entry); - }); - return entries; - }; - /** - * Return entry for the provided path. - */ - FileSystemSync.prototype.getEntry = function (filepath, pattern) { - try { - var stat = this.getStat(filepath); - return this.makeEntry(stat, pattern); - } - catch (err) { - return null; - } - }; - /** - * Return fs.Stats for the provided path. - */ - FileSystemSync.prototype.getStat = function (filepath) { - return fsStat.statSync(filepath, { throwErrorOnBrokenSymlinks: false }); - }; - return FileSystemSync; -}(fs_1.default)); -exports.default = FileSystemSync; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var fsStat = __webpack_require__(684); +var fs_1 = __webpack_require__(688); +var FileSystemSync = /** @class */ (function (_super) { + __extends(FileSystemSync, _super); + function FileSystemSync() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Use sync API to read entries for Task. + */ + FileSystemSync.prototype.read = function (patterns, filter) { + var _this = this; + var entries = []; + patterns.forEach(function (pattern) { + var filepath = _this.getFullEntryPath(pattern); + var entry = _this.getEntry(filepath, pattern); + if (entry === null || !filter(entry)) { + return; + } + entries.push(entry); + }); + return entries; + }; + /** + * Return entry for the provided path. + */ + FileSystemSync.prototype.getEntry = function (filepath, pattern) { + try { + var stat = this.getStat(filepath); + return this.makeEntry(stat, pattern); + } + catch (err) { + return null; + } + }; + /** + * Return fs.Stats for the provided path. + */ + FileSystemSync.prototype.getStat = function (filepath) { + return fsStat.statSync(filepath, { throwErrorOnBrokenSymlinks: false }); + }; + return FileSystemSync; +}(fs_1.default)); +exports.default = FileSystemSync; /***/ }), -/* 694 */ +/* 692 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Flatten nested arrays (max depth is 2) into a non-nested array of non-array items. - */ -function flatten(items) { - return items.reduce(function (collection, item) { return [].concat(collection, item); }, []); -} -exports.flatten = flatten; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Flatten nested arrays (max depth is 2) into a non-nested array of non-array items. + */ +function flatten(items) { + return items.reduce(function (collection, item) { return [].concat(collection, item); }, []); +} +exports.flatten = flatten; /***/ }), -/* 695 */ +/* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var merge2 = __webpack_require__(300); -/** - * Merge multiple streams and propagate their errors into one stream in parallel. - */ -function merge(streams) { - var mergedStream = merge2(streams); - streams.forEach(function (stream) { - stream.on('error', function (err) { return mergedStream.emit('error', err); }); - }); - return mergedStream; -} -exports.merge = merge; + +Object.defineProperty(exports, "__esModule", { value: true }); +var merge2 = __webpack_require__(301); +/** + * Merge multiple streams and propagate their errors into one stream in parallel. + */ +function merge(streams) { + var mergedStream = merge2(streams); + streams.forEach(function (stream) { + stream.on('error', function (err) { return mergedStream.emit('error', err); }); + }); + return mergedStream; +} +exports.merge = merge; /***/ }), -/* 696 */ +/* 694 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(697); +const pathType = __webpack_require__(695); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -80161,13 +80150,13 @@ module.exports.sync = (input, opts) => { /***/ }), -/* 697 */ +/* 695 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const pify = __webpack_require__(698); +const pify = __webpack_require__(696); function type(fn, fn2, fp) { if (typeof fp !== 'string') { @@ -80210,7 +80199,7 @@ exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 698 */ +/* 696 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80301,17 +80290,17 @@ module.exports = (obj, opts) => { /***/ }), -/* 699 */ +/* 697 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(522); -const gitIgnore = __webpack_require__(700); -const pify = __webpack_require__(233); -const slash = __webpack_require__(701); +const fastGlob = __webpack_require__(523); +const gitIgnore = __webpack_require__(698); +const pify = __webpack_require__(234); +const slash = __webpack_require__(699); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -80409,7 +80398,7 @@ module.exports.sync = options => { /***/ }), -/* 700 */ +/* 698 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -80878,7 +80867,7 @@ module.exports = options => new IgnoreBase(options) /***/ }), -/* 701 */ +/* 699 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80896,7 +80885,7 @@ module.exports = input => { /***/ }), -/* 702 */ +/* 700 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80909,7 +80898,7 @@ module.exports = input => { -var isGlob = __webpack_require__(703); +var isGlob = __webpack_require__(701); module.exports = function hasGlob(val) { if (val == null) return false; @@ -80929,7 +80918,7 @@ module.exports = function hasGlob(val) { /***/ }), -/* 703 */ +/* 701 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -80939,7 +80928,7 @@ module.exports = function hasGlob(val) { * Licensed under the MIT License. */ -var isExtglob = __webpack_require__(311); +var isExtglob = __webpack_require__(312); module.exports = function isGlob(str) { if (typeof str !== 'string' || str === '') { @@ -80960,17 +80949,17 @@ module.exports = function isGlob(str) { /***/ }), -/* 704 */ +/* 702 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const {constants: fsConstants} = __webpack_require__(134); -const pEvent = __webpack_require__(705); -const CpFileError = __webpack_require__(708); -const fs = __webpack_require__(710); -const ProgressEmitter = __webpack_require__(713); +const pEvent = __webpack_require__(703); +const CpFileError = __webpack_require__(706); +const fs = __webpack_require__(708); +const ProgressEmitter = __webpack_require__(711); const cpFileAsync = async (source, destination, options, progressEmitter) => { let readError; @@ -81084,12 +81073,12 @@ module.exports.sync = (source, destination, options) => { /***/ }), -/* 705 */ +/* 703 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pTimeout = __webpack_require__(706); +const pTimeout = __webpack_require__(704); const symbolAsyncIterator = Symbol.asyncIterator || '@@asyncIterator'; @@ -81382,13 +81371,13 @@ module.exports.TimeoutError = pTimeout.TimeoutError; /***/ }), -/* 706 */ +/* 704 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pFinally = __webpack_require__(707); +const pFinally = __webpack_require__(705); class TimeoutError extends Error { constructor(message) { @@ -81446,7 +81435,7 @@ module.exports.TimeoutError = TimeoutError; /***/ }), -/* 707 */ +/* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81468,12 +81457,12 @@ module.exports = (promise, onFinally) => { /***/ }), -/* 708 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(709); +const NestedError = __webpack_require__(707); class CpFileError extends NestedError { constructor(message, nested) { @@ -81487,7 +81476,7 @@ module.exports = CpFileError; /***/ }), -/* 709 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(112).inherits; @@ -81543,16 +81532,16 @@ module.exports = NestedError; /***/ }), -/* 710 */ +/* 708 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(112); const fs = __webpack_require__(133); -const makeDir = __webpack_require__(711); -const pEvent = __webpack_require__(705); -const CpFileError = __webpack_require__(708); +const makeDir = __webpack_require__(709); +const pEvent = __webpack_require__(703); +const CpFileError = __webpack_require__(706); const stat = promisify(fs.stat); const lstat = promisify(fs.lstat); @@ -81649,7 +81638,7 @@ exports.copyFileSync = (source, destination, flags) => { /***/ }), -/* 711 */ +/* 709 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81657,7 +81646,7 @@ exports.copyFileSync = (source, destination, flags) => { const fs = __webpack_require__(134); const path = __webpack_require__(4); const {promisify} = __webpack_require__(112); -const semver = __webpack_require__(712); +const semver = __webpack_require__(710); const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); @@ -81812,7 +81801,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 712 */ +/* 710 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -83414,12 +83403,12 @@ function coerce (version, options) { /***/ }), -/* 713 */ +/* 711 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const EventEmitter = __webpack_require__(156); +const EventEmitter = __webpack_require__(157); const written = new WeakMap(); @@ -83455,7 +83444,7 @@ module.exports = ProgressEmitter; /***/ }), -/* 714 */ +/* 712 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83501,12 +83490,12 @@ exports.default = module.exports; /***/ }), -/* 715 */ +/* 713 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pMap = __webpack_require__(716); +const pMap = __webpack_require__(714); const pFilter = async (iterable, filterer, options) => { const values = await pMap( @@ -83523,7 +83512,7 @@ module.exports.default = pFilter; /***/ }), -/* 716 */ +/* 714 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83602,12 +83591,12 @@ module.exports.default = pMap; /***/ }), -/* 717 */ +/* 715 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(709); +const NestedError = __webpack_require__(707); class CpyError extends NestedError { constructor(message, nested) { diff --git a/packages/osd-pm/package.json b/packages/osd-pm/package.json index 5f50dc858b13..66a529bc7b62 100644 --- a/packages/osd-pm/package.json +++ b/packages/osd-pm/package.json @@ -20,7 +20,6 @@ "@babel/preset-typescript": "^7.16.5", "@node-rs/xxhash": "^1.3.0", "@types/cmd-shim": "^2.0.0", - "@types/cpy": "^5.1.0", "@types/dedent": "^0.7.0", "@types/getopts": "^2.0.1", "@types/glob": "^7.1.3", diff --git a/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/package.json b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/package.json new file mode 100644 index 000000000000..f1c6f179d502 --- /dev/null +++ b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/package.json @@ -0,0 +1,14 @@ +{ + "name": "opensearch-dashboards", + "version": "1.0.0", + "private": "true", + "dependencies": { + "foo": "1.0.0", + "@scoped/baz": "file:../other-plugins/baz" + }, + "workspaces": { + "packages": [ + "packages/*" + ] + } +} diff --git a/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/bar/package.json b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/bar/package.json new file mode 100644 index 000000000000..62eba57e2481 --- /dev/null +++ b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/bar/package.json @@ -0,0 +1,8 @@ +{ + "name": "bar", + "version": "1.0.0", + "dependencies": { + "foo": "1.0.0", + "@scoped/baz": "file:../../../other-plugins/baz" + } +} diff --git a/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/foo/package.json b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/foo/package.json new file mode 100644 index 000000000000..da86787ad3ec --- /dev/null +++ b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/packages/foo/package.json @@ -0,0 +1,4 @@ +{ + "name": "foo", + "version": "1.0.0" +} diff --git a/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/yarn.lock b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/yarn.lock new file mode 100644 index 000000000000..3d2c45192493 --- /dev/null +++ b/packages/osd-pm/src/utils/__fixtures__/opensearch-dashboards-dev/yarn.lock @@ -0,0 +1,6 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@scoped/baz@file:../other-plugins/baz": + version "1.0.0" diff --git a/packages/osd-pm/src/utils/yarn_lock.test.ts b/packages/osd-pm/src/utils/yarn_lock.test.ts new file mode 100644 index 000000000000..5f3d1ae0d27a --- /dev/null +++ b/packages/osd-pm/src/utils/yarn_lock.test.ts @@ -0,0 +1,40 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { resolve } from 'path'; +import { OpenSearchDashboards } from './opensearch_dashboards'; +import { readYarnLock } from './yarn_lock'; + +const rootPath = resolve(`${__dirname}/__fixtures__/opensearch-dashboards-dev`); + +const linkedDepmarker = 'file:'; +const linkedDepmarkerLength = linkedDepmarker.length; + +describe('#readYarnLock', () => { + it('includes an entry with the absolute path to a linked dependency', async () => { + const devProject = await OpenSearchDashboards.loadFrom(rootPath); + const { allDependencies } = devProject.getProject('opensearch-dashboards'); + const expectedObject = Object.keys(allDependencies).reduce( + (accumulator: { [key: string]: any }, key) => { + if (allDependencies[key].startsWith('file:')) { + accumulator[ + key + + '@file:' + + resolve( + devProject.getAbsolute(), + allDependencies[key].substring(linkedDepmarkerLength) + ) + ] = expect.any(Object); + } + return accumulator; + }, + {} + ); + + const result = await readYarnLock(devProject); + + expect(result).toMatchObject(expectedObject); + }); +}); diff --git a/packages/osd-pm/src/utils/yarn_lock.ts b/packages/osd-pm/src/utils/yarn_lock.ts index cdd3639626d0..b83b17bb61e6 100644 --- a/packages/osd-pm/src/utils/yarn_lock.ts +++ b/packages/osd-pm/src/utils/yarn_lock.ts @@ -30,6 +30,8 @@ // @ts-expect-error published types are worthless import { parse as parseLockfile } from '@yarnpkg/lockfile'; +import { standardize } from '@osd/cross-platform'; +import { resolve, isAbsolute } from 'path'; import { readFile } from '../utils/fs'; import { OpenSearchDashboards } from '../utils/opensearch_dashboards'; @@ -62,7 +64,7 @@ export async function readYarnLock(osd: OpenSearchDashboards): Promise const yarnLock = parseLockfile(contents); if (yarnLock.type === 'success') { - return yarnLock.object; + return fixFileLinks(yarnLock.object, osd.getAbsolute()); } throw new Error('unable to read yarn.lock file, please run `yarn osd bootstrap`'); @@ -75,6 +77,33 @@ export async function readYarnLock(osd: OpenSearchDashboards): Promise return {}; } +/** + * Converts relative `file:` paths to absolute paths + * Yarn parsing method converts all file URIs to relative paths and this + * breaks the single-version requirement as dependencies to the same path + * would differ in their URIs across OSD and packages. + */ +function fixFileLinks(yarnLock: YarnLock, projectRoot: string): YarnLock { + const fileLinkDelimiter = '@file:'; + + const linkedKeys = Object.keys(yarnLock).filter((key) => key.includes(fileLinkDelimiter)); + + if (linkedKeys.length === 0) return yarnLock; + + const updatedYarnLock = { ...yarnLock }; + for (const key of linkedKeys) { + const [keyName, keyPath, ...rest] = key.split(fileLinkDelimiter); + if (!isAbsolute(keyPath)) { + const updatedKeyName = [keyName, standardize(resolve(projectRoot, keyPath)), ...rest].join( + fileLinkDelimiter + ); + updatedYarnLock[updatedKeyName] = updatedYarnLock[key]; + } + } + + return updatedYarnLock; +} + /** * Get a list of the absolute dependencies of this project, as resolved * in the yarn.lock file, does not include other projects in the workspace diff --git a/packages/osd-stylelint-config/.stylelintrc.js b/packages/osd-stylelint-config/.stylelintrc.js new file mode 100644 index 000000000000..aa06f1a72f08 --- /dev/null +++ b/packages/osd-stylelint-config/.stylelintrc.js @@ -0,0 +1,40 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +module.exports = { + plugins: [ + '@osd/stylelint-plugin-stylelint', + ], + + rules: { + '@osd/stylelint/no_restricted_properties': [ + { + config: "./../../../osd-stylelint-config/config/restricted_properties.json" + }, + { + severity: "error" + } + ], + '@osd/stylelint/no_modifying_global_selectors': [ + { + config: "./../../../osd-stylelint-config/config/global_selectors.json" + }, + { + severity: "error" + } + ], + '@osd/stylelint/no_custom_colors': [ + { + config: './../../../osd-stylelint-config/config/colors.json' + }, + ] + } +} diff --git a/packages/osd-stylelint-config/README.md b/packages/osd-stylelint-config/README.md new file mode 100644 index 000000000000..68d7354626f3 --- /dev/null +++ b/packages/osd-stylelint-config/README.md @@ -0,0 +1,45 @@ +# osd-stylelint-config + +The Stylelint config used by OpenSearch Dashboards. This package is created to enable the modification of rules with the JSON files in `config/` and any consumer of the `@osd/stylelint-plugin-stylelint` can just extend this config within its `.stylelintrc`. + +The ideal state being that this package is maintained externally from the OpenSearch Dashboards repo so that the configs can be modified with rules without being blocked by processes within OpenSearch Dashboards. + +Issue: +https://github.com/opensearch-project/oui/issues/845 + +## Usage + +To use this stylelint config, just install the peer dependencies and reference it +in your `.stylelintrc`: + +```javascript +{ + extends: [ + '@osd/stylelint-config' + ] +} +``` + +This JSON configs that are sent through the compliance engine are expected to follow the schema: + +```json +{ + "cssProperty": { + "regexOfSelector": [ + { + "approved": "OUICompliantValue1", + "rejected": [ + "OUIViolationValue1", + "OUIViolationValue2", + ] + }, + { + "approved": "OUICompliantValue2", + "rejected": [ + "OUIViolationValue3" + ] + } + ] + } +} +``` diff --git a/packages/osd-stylelint-config/config/colors.json b/packages/osd-stylelint-config/config/colors.json new file mode 100644 index 000000000000..70728fa1227e --- /dev/null +++ b/packages/osd-stylelint-config/config/colors.json @@ -0,0 +1,18 @@ +{ + "background-color": { + "buttonTODOTHISANEXAMPLE": [ + { + "approved": "$euiColorPrimary", + "rejected": [ + "blueTODOTHISANEXAMPLE" + ] + }, + { + "approved": "$euiColorWarning", + "rejected": [ + "redTODOTHISANEXAMPLE" + ] + } + ] + } +} diff --git a/packages/osd-stylelint-config/config/global_selectors.json b/packages/osd-stylelint-config/config/global_selectors.json new file mode 100644 index 000000000000..99b2db2dfb4f --- /dev/null +++ b/packages/osd-stylelint-config/config/global_selectors.json @@ -0,0 +1,30 @@ +{ + "#opensearch-dashboards-body": { + "approved": [ + "src/core/public/rendering/_base.scss" + ] + }, + ".app-wrapper": { + "approved": [ + "src/core/public/rendering/_base.scss" + ] + }, + "/\\.[eo]ui/": { + "approved": [ + "examples/expressions_example/public/index.scss", + "src/core/public/styles/_base.scss", + "src/plugins/vis_default_editor/public/_sidebar.scss", + "src/core/public/core_app/styles/_mixins.scss", + "src/core/public/chrome/ui/header/_index.scss", + "src/core/public/chrome/ui/header/header_breadcrumbs.scss", + "src/core/public/chrome/ui/header/home_loader.scss", + "src/plugins/data/public/ui/filter_bar/_global_filter_item.scss", + "src/plugins/home/public/application/components/_synopsis.scss", + "src/plugins/vis_builder/public/application/components/searchable_dropdown.scss", + "src/plugins/vis_builder/public/application/components/side_nav.scss", + "packages/osd-ui-framework/src/components/button/button_group/_button_group.scss", + "src/plugins/discover_legacy/public/application/components/sidebar/discover_sidebar.scss", + "src/plugins/discover_legacy/public/application/angular/doc_table/components/table_row/_open.scss" + ] + } +} \ No newline at end of file diff --git a/packages/osd-stylelint-config/config/restricted_properties.json b/packages/osd-stylelint-config/config/restricted_properties.json new file mode 100644 index 000000000000..cf93f199ad07 --- /dev/null +++ b/packages/osd-stylelint-config/config/restricted_properties.json @@ -0,0 +1,18 @@ +{ + "font-family": { + "approved": [ + "src/plugins/discover_legacy/public/application/_discover.scss", + "src/plugins/maps_legacy/public/map/_leaflet_overrides.scss", + "src/plugins/maps_legacy/public/map/_legend.scss", + "src/plugins/opensearch_dashboards_legacy/public/font_awesome/font_awesome.scss", + "src/plugins/opensearch_dashboards_react/public/markdown/_markdown.scss", + "packages/osd-ui-framework/src/components/tool_bar/_tool_bar_search.scss", + "packages/osd-ui-framework/src/global_styling/mixins/_global_mixins.scss", + "src/plugins/data/public/ui/typeahead/_suggestion.scss", + "src/plugins/vis_type_timeseries/public/application/components/_error.scss", + "packages/osd-ui-framework/src/components/form/check_box/_check_box.scss", + "src/plugins/discover_legacy/public/application/components/doc_viewer/doc_viewer.scss", + "src/plugins/discover/public/application/components/doc_viewer/doc_viewer.scss" + ] + } +} \ No newline at end of file diff --git a/packages/osd-stylelint-config/package.json b/packages/osd-stylelint-config/package.json new file mode 100644 index 000000000000..750a1bf207d8 --- /dev/null +++ b/packages/osd-stylelint-config/package.json @@ -0,0 +1,15 @@ +{ + "name": "@osd/stylelint-config", + "version": "1.0.0", + "description": "The stylelint config used by OpenSearch Dashboards", + "main": ".stylelintrc.js", + "private": true, + "license": "Apache-2.0", + "opensearchDashboards": { + "devOnly": true + }, + "peerDependencies": { + "@osd/stylelint-plugin-stylelint": "1.0.0", + "stylelint": "^14.5.2" + } +} diff --git a/packages/osd-stylelint-plugin-stylelint/README.md b/packages/osd-stylelint-plugin-stylelint/README.md new file mode 100644 index 000000000000..8c9f0a1d6d4b --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/README.md @@ -0,0 +1,68 @@ +# Custom Stylelint rules for OpenSearch Dashboards + +This package contains custom Stylelint rules used for OpenSearch Dashboards development. Rules are defined in `src/rules` and are the actual logic of the custom rules which are built around parsing a JSON config file passed in and applying the rules defined within there. + +This package can work with `@osd/stylelint-config` which houses the JSON config files to be passed into this plugin. The goal being to seperate out OUI compliance rules which can be modified by anyone versus the actual OUI compliance engine which should be only modified by developers. + +## Audit styles that are related to custom rules + +Setting: +``` +export OUI_AUDIT_ENABLED=true +``` + +Enables the ability to capture styling that potentially can be subject to compliance when there is a rule that interacts with the styling. + +For example, if a style attempts to set a button to have a `background-color: $incorrectVariable()` and the JSON config passed to the compliance engine does not explicitly reject the `$incorrectVariable()` being applied to a button's background color then the linter will pass. But it will output this if the environment variable is set to `true`. + +The goal being that setting this environment variable to output a list that can then be added to the JSON config which we can feed back into the compliance engine. + +## Supported config formats + +Currently, this package supports 2 formats for config: file based and value based. + +### File based config + +Sample: +```json +{ + "#global-id": { + "approved": [ + "src/foo/bar.scss" + ] + }, + ".component-class": { + "approved": [ + "src/bar/baz.scss" + ] + } +} +``` + +Allows specifying a selector, such as a CSS selector (class, id, etc.), to be caught by the rule, as well as an allowlist of files where the selector is allowed. + +### Value based config + +Sample: +```json +{ + "color": { + "button": [ + { + "approved": "$primaryColor", + "rejected": [ + "blue" + ] + }, + { + "approved": "$errorColor", + "rejected": [ + "red" + ] + } + ] + } +} +``` + +Allows specifying multiple selectors for finding values. Supports complex configurations of variants with both an approved value and set of rejected values. diff --git a/packages/osd-stylelint-plugin-stylelint/package.json b/packages/osd-stylelint-plugin-stylelint/package.json new file mode 100644 index 000000000000..49947331fb59 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/package.json @@ -0,0 +1,23 @@ +{ + "name": "@osd/stylelint-plugin-stylelint", + "main": "./target/index.js", + "types": "./target/index.d.ts", + "version": "1.0.0", + "private": true, + "license": "Apache-2.0", + "scripts": { + "build": "tsc", + "osd:bootstrap": "yarn build" + }, + "opensearchDashboards": { + "devOnly": true + }, + "peerDependencies": { + "postcss": "^8.4.12", + "stylelint": "^14.5.2" + }, + "devDependencies": { + "typescript": "4.0.2", + "tsd": "^0.21.0" + } +} diff --git a/packages/osd-stylelint-plugin-stylelint/src/index.ts b/packages/osd-stylelint-plugin-stylelint/src/index.ts new file mode 100644 index 000000000000..db919d008f99 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/index.ts @@ -0,0 +1,22 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import stylelint from 'stylelint'; +import rules from './rules'; + +export const NAMESPACE = '@osd/stylelint'; + +const rulesPlugins = Object.keys(rules).map((ruleName: string) => { + return stylelint.createPlugin(`${NAMESPACE}/${ruleName}`, rules[ruleName]); +}); + +// eslint-disable-next-line import/no-default-export +export default rulesPlugins; diff --git a/packages/osd-stylelint-plugin-stylelint/src/rules/index.ts b/packages/osd-stylelint-plugin-stylelint/src/rules/index.ts new file mode 100644 index 000000000000..6dc26fe93f26 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/rules/index.ts @@ -0,0 +1,21 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import noRestrictedProperties from './no_restricted_properties'; +import noCustomColors from './no_custom_colors'; +import noModifyingGlobalSelectors from './no_modifying_global_selectors'; + +// eslint-disable-next-line import/no-default-export +export default { + no_custom_colors: noCustomColors, + no_modifying_global_selectors: noModifyingGlobalSelectors, + no_restricted_properties: noRestrictedProperties, +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/rules/no_custom_colors/index.ts b/packages/osd-stylelint-plugin-stylelint/src/rules/no_custom_colors/index.ts new file mode 100644 index 000000000000..9a8fab66c509 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/rules/no_custom_colors/index.ts @@ -0,0 +1,108 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import stylelint from 'stylelint'; +import { NAMESPACE } from '../..'; +import { + ComplianceEngine, + getTrackedMessage, + getUntrackedMessage, + getNotCompliantMessage, + getRulesFromConfig, + getColorPropertyParent, + isValidOptions, + ValueBasedConfig, +} from '../../utils'; + +const isOuiAuditEnabled = Boolean(process.env.OUI_AUDIT_ENABLED); + +const { ruleMessages, report } = stylelint.utils; +const engine = ComplianceEngine.default; + +const ruleName = 'no_custom_colors'; +const messages = ruleMessages(ruleName, { + expected: (message) => `${message}`, +}); + +const ruleFunction: stylelint.Rule = ( + primaryOption: Record, + secondaryOptionObject: Record, + context +) => { + return (postcssRoot, postcssResult) => { + const validOptions = isValidOptions(postcssResult, ruleName, primaryOption); + if (!validOptions) { + return; + } + + const rules: ValueBasedConfig = getRulesFromConfig(primaryOption.config); + + const isAutoFixing = Boolean(context.fix); + + postcssRoot.walkDecls((decl) => { + const parent = getColorPropertyParent(decl); + if (!parent) { + return; + } + + let shouldReport = false; + + const nodeInfo = { + selector: parent.selector, + prop: decl.prop, + value: decl.value, + }; + + const reportInfo = { + ruleName: `${NAMESPACE}/${ruleName}`, + result: postcssResult, + node: decl, + message: '', + }; + + if (isOuiAuditEnabled && !engine.isTracked(rules, nodeInfo)) { + reportInfo.message = messages.expected(getUntrackedMessage(nodeInfo)); + report(reportInfo); + return; + } + + const ruleObject = engine.getComplianceRule(rules, nodeInfo); + + if (!ruleObject) { + if (isOuiAuditEnabled) { + reportInfo.message = messages.expected(getTrackedMessage(nodeInfo)); + report(reportInfo); + } + return; + } + + shouldReport = !ruleObject.isComplaint; + + if (shouldReport && isAutoFixing && ruleObject.expected) { + decl.value = ruleObject.expected; + return; + } + + if (!shouldReport) { + return; + } + + reportInfo.message = messages.expected(getNotCompliantMessage(ruleObject.message)); + report(reportInfo); + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; + +// eslint-disable-next-line import/no-default-export +export default ruleFunction; diff --git a/packages/osd-stylelint-plugin-stylelint/src/rules/no_modifying_global_selectors/index.ts b/packages/osd-stylelint-plugin-stylelint/src/rules/no_modifying_global_selectors/index.ts new file mode 100644 index 000000000000..d58e7819688f --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/rules/no_modifying_global_selectors/index.ts @@ -0,0 +1,93 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import stylelint from 'stylelint'; +import { NAMESPACE } from '../..'; +import { + getNotCompliantMessage, + getRulesFromConfig, + isValidOptions, + getRuleFromConfig, + FileBasedConfig, +} from '../../utils'; + +const { ruleMessages, report } = stylelint.utils; + +const ruleName = 'no_modifying_global_selectors'; +const messages = ruleMessages(ruleName, { + expected: (message) => `${message}`, +}); + +const ruleFunction: stylelint.Rule = ( + primaryOption: Record, + secondaryOptionObject: Record, + context +) => { + return (postcssRoot, postcssResult) => { + const validOptions = isValidOptions(postcssResult, ruleName, primaryOption); + if (!validOptions) { + return; + } + + const rules: FileBasedConfig = getRulesFromConfig(primaryOption.config); + + const isAutoFixing = Boolean(context.fix); + + postcssRoot.walkRules((rule) => { + const selectorRule = getRuleFromConfig(rules, rule.selector); + if (!selectorRule) { + return; + } + + let shouldReport = false; + + const file = postcssRoot.source?.input.file; + if (!file) { + return; + } + + const approvedFiles = selectorRule.approved; + + const reportInfo = { + ruleName: `${NAMESPACE}/${ruleName}`, + result: postcssResult, + node: rule, + message: '', + }; + + if (approvedFiles) { + shouldReport = !approvedFiles.some((inspectedFile) => { + return file.includes(inspectedFile); + }); + } + + if (shouldReport && isAutoFixing) { + rule.remove(); + return; + } + + if (!shouldReport) { + return; + } + + reportInfo.message = messages.expected( + getNotCompliantMessage(`Modifying global selector "${rule.selector}" not allowed.`) + ); + report(reportInfo); + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; + +// eslint-disable-next-line import/no-default-export +export default ruleFunction; diff --git a/packages/osd-stylelint-plugin-stylelint/src/rules/no_restricted_properties/index.ts b/packages/osd-stylelint-plugin-stylelint/src/rules/no_restricted_properties/index.ts new file mode 100644 index 000000000000..9da587545b1d --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/rules/no_restricted_properties/index.ts @@ -0,0 +1,87 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import stylelint from 'stylelint'; +import { NAMESPACE } from '../..'; +import { + getNotCompliantMessage, + getRuleFromConfig, + getRulesFromConfig, + isValidOptions, + FileBasedConfig, +} from '../../utils'; + +const { ruleMessages, report } = stylelint.utils; + +const ruleName = 'no_restricted_properties'; +const messages = ruleMessages(ruleName, { + expected: (message) => `${message}`, +}); + +const ruleFunction: stylelint.Rule = ( + primaryOption: Record, + secondaryOptionObject: Record, + context +) => { + return (postcssRoot, postcssResult) => { + const validOptions = isValidOptions(postcssResult, ruleName, primaryOption); + if (!validOptions) { + return; + } + + const rules: FileBasedConfig = getRulesFromConfig(primaryOption.config); + + const isAutoFixing = Boolean(context.fix); + + postcssRoot.walkDecls((decl) => { + const propertyRule = getRuleFromConfig(rules, decl.prop); + if (!propertyRule) { + return; + } + + let shouldReport = false; + + const file = postcssRoot.source?.input.file; + if (!file) { + return; + } + + const approvedFiles = propertyRule.approved; + + const reportInfo = { + ruleName: `${NAMESPACE}/${ruleName}`, + result: postcssResult, + node: decl, + message: '', + }; + + if (approvedFiles) { + shouldReport = !approvedFiles.some((inspectedFile) => { + return file.includes(inspectedFile); + }); + } + + if (shouldReport && isAutoFixing) { + decl.remove(); + return; + } + + if (!shouldReport) { + return; + } + + reportInfo.message = messages.expected( + getNotCompliantMessage(`Usage of property "${decl.prop}" is not allowed.`) + ); + report(reportInfo); + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; + +// eslint-disable-next-line import/no-default-export +export default ruleFunction; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/compliance_engine.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/compliance_engine.ts new file mode 100644 index 000000000000..7b95e94e536c --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/compliance_engine.ts @@ -0,0 +1,79 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import { ValueBasedConfig } from './get_rules_from_config'; + +export interface ComplianceRule { + isComplaint: boolean; + actual: string; + expected: string | undefined; + message: string; +} + +const getRule = (rules: ValueBasedConfig, nodeInfo: { selector: string; prop: string }) => { + const rule = rules[nodeInfo.prop]; + if (!rule) { + return undefined; + } + + if (!nodeInfo.selector) { + return undefined; + } + + const ruleKey = Object.keys(rule).find((key) => { + const regex = new RegExp(key, 'gi'); + return nodeInfo.selector.match(regex); + }); + + if (!ruleKey) { + return undefined; + } + + return rule[ruleKey]; +}; + +const isTracked = (rules: ValueBasedConfig, nodeInfo: { selector: string; prop: string }) => { + return getRule(rules, nodeInfo) !== undefined; +}; + +const getComplianceRule = ( + rules: ValueBasedConfig, + nodeInfo: { selector: string; prop: string; value: string } +): ComplianceRule | undefined => { + const rule = getRule(rules, nodeInfo); + + if (!rule) { + return undefined; + } + + const ruleObject = rule.find((object) => { + if (object.approved?.includes(nodeInfo.value) || object.rejected?.includes(nodeInfo.value)) { + return object; + } + }); + + if (!ruleObject) { + return undefined; + } + + return { + isComplaint: !ruleObject.rejected?.includes(nodeInfo.value), + actual: nodeInfo.value, + expected: ruleObject.approved, + message: `${nodeInfo.selector} expected: ${ruleObject.approved} - actual: ${nodeInfo.value}`, + }; +}; + +// eslint-disable-next-line import/no-default-export +export default { + isTracked, + getComplianceRule, +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/extract_regex.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/extract_regex.ts new file mode 100644 index 000000000000..937b486ad940 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/extract_regex.ts @@ -0,0 +1,22 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +export const extractRegex = (value: string) => { + if (!value.startsWith('/')) { + return undefined; + } + + const split = value.split('/'); + split.shift(); + + const flags = split.pop(); + if (split.length === 0) { + return undefined; + } + + const pattern = split.join('/'); + + return new RegExp(pattern, flags); +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/get_message.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/get_message.ts new file mode 100644 index 000000000000..65e236aaffad --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/get_message.ts @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +export const getUntrackedMessage = (nodeInfo: { selector: string; prop: string; value: string }) => + `Untracked: "${nodeInfo.selector}.${nodeInfo.prop}: ${nodeInfo.value}"`; + +export const getTrackedMessage = (nodeInfo: { selector: string; prop: string; value: string }) => + `Tracked but missing approval: "${nodeInfo.selector}.${nodeInfo.prop}: ${nodeInfo.value}"`; + +export const getNotCompliantMessage = (message: string) => `${message}`; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/get_rules_from_config.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/get_rules_from_config.ts new file mode 100644 index 000000000000..cc97d13a030c --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/get_rules_from_config.ts @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import path from 'path'; +import { readFileSync } from 'fs'; +import { matches } from './matches'; + +export type FileBasedConfig = Record; +export type ValueBasedConfig = Record< + string, + Record> +>; + +export const getRulesFromConfig = (configPath: string) => { + const filePath = path.resolve(__dirname, configPath); + return JSON.parse(readFileSync(filePath, 'utf-8')); +}; + +export const getRuleFromConfig = (rules: FileBasedConfig, value: string) => { + for (const key of Object.keys(rules)) { + if (matches(key, value)) { + return rules[key]; + } + } + + return undefined; +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/index.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/index.ts new file mode 100644 index 000000000000..ef60132e86b7 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/index.ts @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +export * as ComplianceEngine from './compliance_engine'; +export * from './extract_regex'; +export * from './get_message'; +export * from './get_rules_from_config'; +export * from './is_color_property'; +export * from './is_valid_options'; +export * from './matches'; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/is_color_property.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/is_color_property.ts new file mode 100644 index 000000000000..ef7ad9118f81 --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/is_color_property.ts @@ -0,0 +1,70 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import { Rule, Declaration } from 'postcss'; + +const COLOR_PROPERTIES = [ + 'all', + 'animation', + 'animation-name', + 'background', + 'background-color', + 'background-image', + 'border', + 'border-bottom', + 'border-bottom-color', + 'border-color', + 'border-image', + 'border-image-source', + 'border-left', + 'border-left-color', + 'border-right', + 'border-right-color', + 'border-top', + 'border-top-color', + 'box-shadow', + 'caret-color', + 'color', + 'column-rule', + 'column-rule-color', + 'content', + 'cursor', + 'filter', + 'list-style', + 'list-style-image', + 'outline', + 'outline-color', + 'text-decoration', + 'text-decoration-color', + 'text-shadow', + 'mask-image', + 'shape-outside', + 'mask-border-source', +]; + +/** + * This is intended to check a list of defined properties + * within a style and see if it's potentially modifying a property + * that can have a color. Stylelint crawls styles and will check + * each one, therefore this is to optimize the linter to + * skip any property that does not impact colors. + */ +export const isColorProperty = (prop: string) => { + return COLOR_PROPERTIES.includes(prop); +}; + +export const getColorPropertyParent = (decl: Declaration) => { + if (!isColorProperty(decl.prop)) { + return undefined; + } + + return decl.parent as Rule; +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/is_valid_options.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/is_valid_options.ts new file mode 100644 index 000000000000..15fae8862eaa --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/is_valid_options.ts @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +import stylelint from 'stylelint'; + +const { validateOptions } = stylelint.utils; + +export const isValidOptions = ( + postcssResult: any, + ruleName: string, + primaryOption: Record +) => { + return validateOptions(postcssResult, ruleName, { + actual: primaryOption, + possible: { + config: [(input) => typeof input === 'string'], + }, + }); +}; diff --git a/packages/osd-stylelint-plugin-stylelint/src/utils/matches.ts b/packages/osd-stylelint-plugin-stylelint/src/utils/matches.ts new file mode 100644 index 000000000000..02cc327615bd --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/src/utils/matches.ts @@ -0,0 +1,15 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { extractRegex } from './extract_regex'; + +export const matches = (matcher: string, value: string) => { + const regex = extractRegex(matcher); + if (!regex) { + return value === matcher; + } + + return regex.test(value); +}; diff --git a/packages/osd-stylelint-plugin-stylelint/tsconfig.json b/packages/osd-stylelint-plugin-stylelint/tsconfig.json new file mode 100644 index 000000000000..d7e31cada44d --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "declaration": true, + "declarationDir": "./target", + "outDir": "./target", + "stripInternal": true, + "declarationMap": true, + "types": ["jest", "node"], + "noImplicitAny": false, + }, + "include": ["./src/**/*.ts"], + "exclude": ["target"] +} diff --git a/packages/osd-stylelint-plugin-stylelint/yarn.lock b/packages/osd-stylelint-plugin-stylelint/yarn.lock new file mode 120000 index 000000000000..3f82ebc9cdba --- /dev/null +++ b/packages/osd-stylelint-plugin-stylelint/yarn.lock @@ -0,0 +1 @@ +../../yarn.lock \ No newline at end of file diff --git a/packages/osd-ui-framework/Gruntfile.js b/packages/osd-ui-framework/Gruntfile.js index 9ad26b578e08..10295493609c 100644 --- a/packages/osd-ui-framework/Gruntfile.js +++ b/packages/osd-ui-framework/Gruntfile.js @@ -28,6 +28,7 @@ * under the License. */ +const { strip } = require('comment-stripper'); const sass = require('node-sass'); const postcss = require('postcss'); const postcssConfig = require('@osd/optimizer/postcss.config.js'); @@ -74,6 +75,8 @@ module.exports = function (grunt) { Promise.all([ uiFrameworkCompile('src/kui_light.scss', 'dist/kui_light.css'), uiFrameworkCompile('src/kui_dark.scss', 'dist/kui_dark.css'), + uiFrameworkCompile('src/kui_next_light.scss', 'dist/kui_next_light.css'), + uiFrameworkCompile('src/kui_next_dark.scss', 'dist/kui_next_dark.css'), ]).then(done); }); @@ -89,7 +92,10 @@ module.exports = function (grunt) { } postcss([postcssConfig]) - .process(result.css, { from: src, to: dest }) + .process(strip(result.css.toString('utf8'), { language: 'css' }), { + from: src, + to: dest, + }) .then((result) => { grunt.file.write(dest, result.css); diff --git a/packages/osd-ui-framework/dist/kui_dark.css b/packages/osd-ui-framework/dist/kui_dark.css index aa16bcdb34d3..d559e81e46dc 100644 --- a/packages/osd-ui-framework/dist/kui_dark.css +++ b/packages/osd-ui-framework/dist/kui_dark.css @@ -1,152 +1,52 @@ -/* 1 */ -/* 1 */ -/** - * 1. Extend beta badges to at least 40% of the container's width - * 2. Fix for IE to ensure badges are visible outside of a tag - */ -/** - * 1. Apply margin to all but last item in the flex. - * 2. Margin gets flipped because of the row-reverse. - */ -/** - * 3. Must supply both values to background-size or some browsers apply the single value to both directions - */ -/** - * 4. Override invalid state with focus state. - */ -/** - * Mixin for use in: - * - EuiCard - * - EuiPageContent -*/ -/** - * 1. Enforce pointer when there's no href. - * 2. Allow these styles to be applied to a button element. - */ -/** - * 1. Override Bootstrap styles. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :disabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * Nothing fancy, just the basics so we can use this for both regular and static controls. - */ -/** - * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height. - */ -/** - * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly - * coupled with Angular. - */ -/** - * 1. Embedded SVG of fa-caret-down (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg). - * 2. Make room on right side for the caret. - * 3. Prevent Firefox from showing dotted line around text on focus. - */ -/** - * 1. Setting to inline-block guarantees the same height when applied to both - * button elements and anchor tags. - * 2. Fit MicroButton inside of Table rows without pushing them taller. - */ -/** - * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't - * depend on them to give it the desired height. - */ -/** - * 1. Put 10px of space between each child. - * 2. If there is only one section, align it to the right. If you wanted it aligned right, you - * wouldn't use the Bar in the first place. - * 3. Children in the middle should center their content. - * 4. Fix an IE bug which causes the last child to overflow the container. - * 5. Fixing this bug means we now need to align the children to the right. - */ -/** - * 1. Required for IE11. +/*! + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. */ + main { display: block; - /* 1 */ } + } .kuiBar { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ } + } .kuiBarSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiBarSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiBarSection:first-child { margin-left: 0; } .kuiBarSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiBarSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiBarSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Setting to inline-block guarantees the same height when applied to both - * button elements and anchor tags. - * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but - * at least make them look like they're not focused. - */ .kuiButton { display: inline-block; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; + -webkit-appearance: none; + appearance: none; cursor: pointer; padding: 4px 12px 5px; font-size: 16px; @@ -158,32 +58,21 @@ main { border-radius: 4px; } .kuiButton:disabled { cursor: not-allowed; - opacity: .5; } + opacity: 0.5; } a.kuiButton.kuiButton-isDisabled { cursor: not-allowed; - opacity: .5; } + opacity: 0.5; } .kuiButton:enabled:active { -webkit-transform: translateY(1px); transform: translateY(1px); } a.kuiButton:not(.kuiButton-isDisabled):active { - /* 1 */ - -webkit-transform: translateY(1px); - transform: translateY(1px); } + -webkit-transform: translateY(1px); + transform: translateY(1px); } -/** - * 1. Solves whitespace problems introduced by inline elements. - */ .kuiButton__inner { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - /* 1 */ - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - /* 1 */ } + align-items: center; + } .kuiButton--small { font-size: 12px; @@ -206,124 +95,85 @@ main { .kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) { margin-left: 4px; } -/** - * 1. Override Bootstrap. - */ .kuiButton--basic { color: #DFE5EF; background-color: #25262E; } .kuiButton--basic:not(a):enabled:focus { color: #DFE5EF; } a.kuiButton--basic:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #DFE5EF; } + color: #DFE5EF; } .kuiButton--basic:enabled:hover { background-color: #0e0f12 !important; - /* 1 */ } + } a.kuiButton--basic:not(.kuiButton-isDisabled):hover { - /* 1 */ - background-color: #0e0f12 !important; - /* 1 */ } + background-color: #0e0f12 !important; + } .kuiButton--basic:enabled:active { background-color: #0e0f12 !important; - /* 1 */ } + } a.kuiButton--basic:not(.kuiButton-isDisabled):active { - /* 1 */ - background-color: #0e0f12 !important; - /* 1 */ } + background-color: #0e0f12 !important; + } -/** - * 1. Override Bootstrap. - */ .kuiButton--primary { color: #FFF; background-color: #1BA9F5; } .kuiButton--primary:not(a):enabled:focus { color: #FFF; } a.kuiButton--primary:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #FFF; } + color: #FFF; } .kuiButton--primary:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #098dd4; } + background-color: #098dd4; } a.kuiButton--primary:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #098dd4; } + color: #FFF !important; + background-color: #098dd4; } .kuiButton--primary:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #098dd4; } + background-color: #098dd4; } a.kuiButton--primary:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #098dd4; } + color: #FFF !important; + background-color: #098dd4; } -/** - * 1. Override Bootstrap. - */ .kuiButton--success { color: #FFF; background-color: #7DE2D1; } .kuiButton--success:not(a):enabled:focus { color: #FFF; } a.kuiButton--success:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #FFF; } + color: #FFF; } .kuiButton--success:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #53d9c2; } + background-color: #53d9c2; } a.kuiButton--success:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #53d9c2; } + color: #FFF !important; + background-color: #53d9c2; } .kuiButton--success:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #53d9c2; } + background-color: #53d9c2; } a.kuiButton--success:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #53d9c2; } + color: #FFF !important; + background-color: #53d9c2; } -/** - * 1. Override Bootstrap. - */ .kuiButton--danger { color: #F66; border: solid 1px #F66; } .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; - /* 3 */ - color: #F66; } + outline: none !important; + box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; + color: #F66; } a.kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; - /* 3 */ - color: #F66; } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66; + color: #F66; } .kuiButton--danger:enabled:hover { color: #ff3333 !important; border: solid 1px #ff3333; background-color: rgba(255, 102, 102, 0.1); } a.kuiButton--danger:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #ff3333 !important; + color: #ff3333 !important; border: solid 1px #ff3333; background-color: rgba(255, 102, 102, 0.1); } .kuiButton--danger:enabled:active { @@ -331,126 +181,83 @@ main { border: solid 1px #ff3333; background-color: rgba(255, 102, 102, 0.1); } a.kuiButton--danger:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #ff3333 !important; + color: #ff3333 !important; border: solid 1px #ff3333; background-color: rgba(255, 102, 102, 0.1); } -/** - * 1. Override Bootstrap. - */ .kuiButton--warning { color: #FFF; background-color: #FFCE7A; } .kuiButton--warning:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; - box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; - /* 3 */ - color: #FFF; } + outline: none !important; + box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; + color: #FFF; } a.kuiButton--warning:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; - box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; - /* 3 */ - color: #FFF; } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A; + color: #FFF; } .kuiButton--warning:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #ffbb47; } + background-color: #ffbb47; } a.kuiButton--warning:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #ffbb47; } + color: #FFF !important; + background-color: #ffbb47; } .kuiButton--warning:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #ffbb47; } + background-color: #ffbb47; } a.kuiButton--warning:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #ffbb47; } + color: #FFF !important; + background-color: #ffbb47; } .kuiButton--warning:disabled { background-color: #ffe1ad; } a.kuiButton--warning.kuiButton-isDisabled { background-color: #ffe1ad; } -/** - * 1. Override Bootstrap. - * 2. Override either Bootstrap or Timelion styles. - */ .kuiButton--hollow { color: #1BA9F5 !important; - /* 2 */ - background-color: transparent; } + background-color: transparent; } .kuiButton--hollow:enabled:hover { color: #098dd4 !important; - /* 1 */ - text-decoration: underline; } + text-decoration: underline; } a.kuiButton--hollow:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #098dd4 !important; - /* 1 */ - text-decoration: underline; } + color: #098dd4 !important; + text-decoration: underline; } .kuiButton--hollow:enabled:active { color: #098dd4 !important; - /* 1 */ - text-decoration: underline; } + text-decoration: underline; } a.kuiButton--hollow:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #098dd4 !important; - /* 1 */ - text-decoration: underline; } + color: #098dd4 !important; + text-decoration: underline; } .kuiButton--secondary { color: #1BA9F5 !important; - /* 2 */ - border: solid 1px #1BA9F5; } + border: solid 1px #1BA9F5; } .kuiButton--secondary:enabled:hover { color: #098dd4 !important; - /* 1 */ - border: solid 1px #098dd4; + border: solid 1px #098dd4; background-color: rgba(27, 169, 245, 0.1); text-decoration: underline; } a.kuiButton--secondary:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #098dd4 !important; - /* 1 */ - border: solid 1px #098dd4; + color: #098dd4 !important; + border: solid 1px #098dd4; background-color: rgba(27, 169, 245, 0.1); text-decoration: underline; } .kuiButton--secondary:enabled:active { color: #098dd4 !important; - /* 1 */ - border: solid 1px #098dd4; + border: solid 1px #098dd4; background-color: rgba(27, 169, 245, 0.1); text-decoration: underline; } a.kuiButton--secondary:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #098dd4 !important; - /* 1 */ - border: solid 1px #098dd4; + color: #098dd4 !important; + border: solid 1px #098dd4; background-color: rgba(27, 169, 245, 0.1); text-decoration: underline; } .kuiButtonGroup { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiButtonGroup .kuiButton + .kuiButton { margin-left: 4px; } @@ -466,24 +273,15 @@ main { border-bottom-left-radius: 0; } .kuiButtonGroup--united > .kuiButton:only-child { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; } + border-radius: 4px 4px 4px 4px; } .kuiButtonGroup--united .kuiButton + .kuiButton { margin-left: 0; } .kuiButtonGroup--fullWidth { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiButtonGroup--fullWidth > .kuiButton { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; text-align: center; } .eui-textCenter > .kuiButtonGroup, @@ -492,7 +290,6 @@ main { .kuiCollapseButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; padding: 4px; @@ -500,95 +297,64 @@ main { line-height: 1; font-size: 16px; color: #DFE5EF !important; - /* 1 */ - cursor: pointer; + cursor: pointer; opacity: 0.35; } .kuiCollapseButton:hover { opacity: 1; } -/** - * 1. Set inline-block so this wrapper shrinks to fit the input. - */ .kuiAssistedInput { display: inline-block; - /* 1 */ - position: relative; } + position: relative; } -/** - * 1. Vertically center the assistance, regardless of its height. - */ .kuiAssistedInput__assistance { position: absolute; right: 12px; top: 50%; - /* 1 */ - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - /* 1 */ } + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } -/** - * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really - * ugly default appearance which we can't customize, so our best option is to give Firefox - * control over the checkbox's appearance. - * 2. Override default styles (possibly from Bootstrap). - */ .kuiCheckBox { -webkit-appearance: none; - /* 1 */ - background-color: #16171c; + appearance: none; + background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; width: 16px; height: 16px; - line-height: 1.5 !important; - /* 2 */ - margin: 0 !important; - /* 2 */ - font: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; - /* 2 */ - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; - /* 2 */ - font-size: 10px !important; - /* 2 */ - -webkit-transition: background-color 0.1s linear; - transition: background-color 0.1s linear; } - .kuiCheckBox:before { + font: "var(--font-text)" !important; + line-height: 1.5 !important; + margin: 0 !important; + font-family: "var(--font-text)" !important; + font-size: 10px !important; + transition: background-color 0.1s linear; } + .kuiCheckBox::before { position: relative; left: 0.25em; - font-family: FontAwesome; + font-family: FontAwesome, sans-serif; content: "\F00C"; font-size: 1em; opacity: 0; color: #FFF; - -webkit-transition: opacity 0.1s linear; transition: opacity 0.1s linear; } .kuiCheckBox:checked { border-color: #1BA9F5; background-color: #1BA9F5; } - .kuiCheckBox:checked:before { + .kuiCheckBox:checked::before { opacity: 1; } .kuiCheckBox:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #1BA9F5; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #1BA9F5; + } .kuiCheckBox:disabled { background-color: #202128 !important; border-color: #202128 !important; cursor: not-allowed !important; } .kuiCheckBoxLabel { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; font-weight: normal !important; line-height: 1.5; } @@ -596,15 +362,12 @@ main { font-size: 16px; margin-left: 8px; } -/** - * 1. Override Bootstrap. - */ .kuiLabel { font-size: 16px; line-height: 1.5; font-weight: bold; margin-bottom: 0; - /* 1 */ } + } .kuiSearchInput { width: 180px; @@ -622,15 +385,10 @@ main { font-size: 1em; color: #535966; } -/** - * 1. Make space for search icon. - * 2. Expand to fill container. - */ .kuiSearchInput__input { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -639,14 +397,11 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-left: 28px; - /* 1 */ - width: 100%; - /* 2 */ } + padding-left: 28px; + width: 100%; + } .kuiSearchInput__input:invalid { border-color: #F66; } .kuiSearchInput__input:focus { @@ -662,14 +417,10 @@ main { .kuiSearchInput--large { width: 400px; } -/** - * Avoid setting a width here, so that the width of the options can dynamically set the width. - */ .kuiSelect { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -678,18 +429,14 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-right: 30px; - /* 2 */ - background-image: url('data:image/svg+xml;utf8,'); - /* 1 */ - background-size: 14px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; background-repeat: no-repeat; background-position: calc(100% - 8px); - /* 2 */ } + } .kuiSelect:invalid { border-color: #F66; } .kuiSelect:focus { @@ -700,12 +447,11 @@ main { cursor: not-allowed; } .kuiSelect:-moz-focusring { text-shadow: 0 0 0; - /* 3 */ } + } .kuiSelect.kuiSelect-isInvalid { border-color: #F66; } .kuiSelect:focus { - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; outline: none; border-color: #1BA9F5; } @@ -718,30 +464,24 @@ main { .kuiSelect--large { width: 400px; } -/** - * 1. Have the same spatial footprint as the regular input. - */ .kuiStaticInput { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; line-height: 1.5; color: #DFE5EF; border: 1px solid transparent; - /* 1 */ - background-color: transparent; } + background-color: transparent; } .kuiTextArea { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -750,10 +490,9 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ } + } .kuiTextArea:invalid { border-color: #F66; } .kuiTextArea:focus { @@ -763,8 +502,7 @@ main { opacity: 0.4; cursor: not-allowed; } .kuiTextArea:focus { - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; outline: none; border-color: #1BA9F5; } .kuiTextArea.kuiTextArea-isInvalid { @@ -782,9 +520,8 @@ main { .kuiTextInput { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -793,10 +530,9 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ } + } .kuiTextInput:invalid { border-color: #F66; } .kuiTextInput:focus { @@ -814,25 +550,13 @@ main { .kuiTextInput--large { width: 400px; } -/** - * 1. We may want to put elements in here which have different heights. - */ .kuiFieldGroup { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - /* 1 */ } + align-items: center; + } .kuiFieldGroup--alignTop { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; } + align-items: flex-start; } .kuiFieldGroupSection { line-height: 1.5; } @@ -840,30 +564,18 @@ main { margin-left: 10px; } .kuiFieldGroupSection--wide { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; } + flex: 1 1 auto; } .kuiFieldGroupSection--wide > * { width: 100%; } -/** - * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away - * from FontAwesome someday. When we do migrate away, we can just update this definition. - */ .kuiIcon { display: inline-block; - /* 1 */ - font: normal normal normal 14px/1 FontAwesome; - /* 1 */ - font-size: inherit; - /* 1 */ - text-rendering: auto; - /* 1 */ - -webkit-font-smoothing: antialiased; - /* 1 */ - -moz-osx-font-smoothing: grayscale; - /* 1 */ } + font: normal normal normal 14px/1 FontAwesome, sans-serif; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } .kuiIcon--info { color: #1BA9F5; } @@ -888,47 +600,26 @@ main { line-height: 1.5; border: 2px solid; } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--info { border-color: rgba(27, 169, 245, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--success { border-color: rgba(125, 226, 209, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--warning { border-color: rgba(255, 206, 122, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--error { border-color: rgba(255, 102, 102, 0.25); - /* 1 */ } + } -/** - * 1. Align with first line of title text if it wraps. - */ .kuiInfoPanelHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: baseline; - -webkit-align-items: baseline; - -ms-flex-align: baseline; - align-items: baseline; - /* 1 */ } + align-items: baseline; + } .kuiInfoPanelHeader__icon { margin-right: 10px; @@ -953,48 +644,26 @@ main { color: #1BA9F5; text-decoration: none; cursor: pointer; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: none; - /* 2 */ - font-size: inherit; - /* 2 */ - line-height: inherit; - /* 2 */ } + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + } .kuiLink:visited, .kuiLink:active { color: #1BA9F5; } .kuiLink:hover { color: #098dd4; text-decoration: underline; } -/** - * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over - * a bit. - */ .kuiLocalBreadcrumbs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 12px 8px; - /* 1 */ - border-bottom: 1px solid #343741; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 100%; - -ms-flex-preferred-size: 100%; - flex-basis: 100%; + border-bottom: 1px solid #343741; + flex-grow: 1; + flex-basis: 100%; background-color: #1D1E24; } .kuiLocalBreadcrumb { @@ -1003,38 +672,25 @@ main { font-weight: normal; } .kuiLocalBreadcrumb + .kuiLocalBreadcrumb { margin-left: 6px; } - .kuiLocalBreadcrumb + .kuiLocalBreadcrumb:before { - content: '/'; + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before { + content: "/"; -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none; margin-right: 4px; color: #343741; } -/** - * 1. Make it a bit darker to contrast with the gray background. - */ .kuiLocalBreadcrumb__link { color: #1BA9F5; text-decoration: none; cursor: pointer; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: none; - /* 2 */ - font-size: inherit; - /* 2 */ - line-height: inherit; - /* 2 */ - color: #1BA9F5; - /* 1 */ - font-size: 16px; } + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + color: #1BA9F5; + font-size: 16px; } .kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active { color: #1BA9F5; } .kuiLocalBreadcrumb__link:hover { @@ -1054,26 +710,13 @@ main { padding: 0; } .kuiDatePickerNavigation { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; margin-bottom: 4px; } -/** - * 1. Override inherited styles. - */ .kuiDatePickerNavigationButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; border: none; @@ -1087,14 +730,10 @@ main { background-color: #1BA9F5; } .kuiDatePickerNavigationButton:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; - /* 3 */ - color: #DFE5EF; - /* 1 */ } + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; + color: #DFE5EF; + } .kuiDatePickerHeaderCell { padding: 9px 0; @@ -1107,22 +746,14 @@ main { .kuiDatePickerRowCell { padding: 0; text-align: center; - /** - * This state class exists to support weird angular-bootstrap datepicker functionality, - * in which you can't select a day on the "From" calendar if it falls after the selected day in - * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day). - */ } + } .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked { cursor: not-allowed; } .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent { pointer-events: none; } -/** - * 1. Override inherited styles. - */ .kuiDatePickerRowCellContent { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; width: 100%; @@ -1134,14 +765,10 @@ main { line-height: 1.2; } .kuiDatePickerRowCellContent:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; - /* 3 */ - color: #DFE5EF; - /* 1 */ } + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5; + color: #DFE5EF; + } .kuiDatePickerRowCellContent:disabled { pointer-events: none; opacity: 0.5; } @@ -1167,7 +794,6 @@ main { .kuiLocalDropdownCloseButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; padding: 4px; @@ -1175,8 +801,7 @@ main { line-height: 1; font-size: 16px; color: #DFE5EF !important; - /* 1 */ - cursor: pointer; + cursor: pointer; opacity: 0.35; position: absolute; top: 1px; @@ -1185,16 +810,10 @@ main { opacity: 1; } .kuiLocalDropdownPanels { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiLocalDropdownPanel { - -webkit-box-flex: 1; - -webkit-flex: 1 1 0%; - -ms-flex: 1 1 0%; - flex: 1 1 0%; } + flex: 1 1 0%; } .kuiLocalDropdownPanel--left { margin-right: 30px; } @@ -1202,13 +821,9 @@ main { .kuiLocalDropdownPanel--right { margin-left: 30px; } -/** - * 1. Override inherited styles. - */ .kuiLocalDropdownTitle { margin-top: 0; - /* 1 */ - margin-bottom: 12px; + margin-bottom: 12px; font-size: 18px; color: #DFE5EF; } @@ -1218,34 +833,18 @@ main { margin-bottom: 0; } .kuiLocalDropdownHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; margin-bottom: 6px; } -/** - * 1. Override inherited styles. - */ .kuiLocalDropdownHeader__label { font-size: 14px; font-weight: 700; margin-bottom: 0; - /* 1 */ - color: #DFE5EF; } + color: #DFE5EF; } .kuiLocalDropdownHeader__actions { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiLocalDropdownHeader__action { @@ -1289,26 +888,14 @@ main { color: #98A2B3; } .kuiLocalMenu { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; + align-items: stretch; padding-top: 8px; padding-bottom: 8px; } .kuiLocalMenuItem { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 2px 8px; font-size: 16px; background-color: transparent; @@ -1337,87 +924,39 @@ main { margin-right: 5px; margin-bottom: -1px; } -/** - * 1. Match height of logo in side bar, but allow it to expand to accommodate - * dropdown. - */ .kuiLocalNav { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + flex-direction: column; + justify-content: space-between; min-height: 69px; - /* 1 */ - color: #DFE5EF; + color: #DFE5EF; background-color: #1D1E24; line-height: 1.5; border-bottom: solid 1px #343741; } -/** - * 1. Allow row to expand if the content is so long that it wraps. - */ .kuiLocalNavRow { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; } + align-items: stretch; + justify-content: space-between; } .kuiLocalNavRow__section { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; } - -/** - * 1. We make this row flex-start because it usually contains a search input, which may expand - * beyond the height of this container. We can't use `align-items: center`, because this would - * cause the search input to overflow both on the top and bottom; `align-items: flex-start` - * makes it only overflow on the bottom. But this means we need to manually center the content - * of this container using padding. - */ + align-items: stretch; } + .kuiLocalNavRow--secondary { padding: 0 8px; - /* 1 */ - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - /* 1 */ } + align-items: flex-start; + } .kuiLocalSearch { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; margin-bottom: 8px; } .kuiLocalSearchInput { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -1426,14 +965,9 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - -webkit-box-flex: 1; - -webkit-flex: 1 1 100%; - -ms-flex: 1 1 100%; - flex: 1 1 100%; + flex: 1 1 100%; border-color: #FFF; border-color: #343741; border-radius: 4px 0 0 4px; } @@ -1446,59 +980,34 @@ main { opacity: 0.4; cursor: not-allowed; } .kuiLocalSearchInput:focus { - -webkit-box-shadow: none; - box-shadow: none; } + box-shadow: none; } .kuiLocalSearchInput.kuiLocalSearchInput-isInvalid { border-color: #F66; } .kuiLocalSearchInput--secondary { height: 32px; - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; + flex: 0 0 auto; border-radius: 0; border-left-width: 0; } -.kuiLocalSearchAssistedInput { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1 1 100%; - -ms-flex: 1 1 100%; - flex: 1 1 100%; - position: relative; } - -/** - * 1. em used for right padding so documentation link and query string - * won't overlap if the user increases their default browser font size - * This is sized for the 'Options' link - */ .kuiLocalSearchInput, .kuiLocalSearchAssistedInput__input { padding-right: 6em; - /* 1 */ } + } -/** - * 1. Vertically center the assistance, regardless of its height. - */ .kuiLocalSearchAssistedInput__assistance { position: absolute; right: 6px; top: 50%; - /* 1 */ - z-index: 2; + z-index: 2; -webkit-transform: translateY(-50%); transform: translateY(-50%); - /* 1 */ } + } .kuiLocalSearchSelect { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -1507,19 +1016,14 @@ main { background-color: #16171c; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-right: 30px; - /* 2 */ - background-image: url('data:image/svg+xml;utf8,'); - /* 1 */ - background-size: 14px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; background-repeat: no-repeat; background-position: calc(100% - 8px); - /* 2 */ - border-left-width: 0; + border-left-width: 0; border-radius: 0; } .kuiLocalSearchSelect:invalid { border-color: #F66; } @@ -1531,62 +1035,38 @@ main { cursor: not-allowed; } .kuiLocalSearchSelect:-moz-focusring { text-shadow: 0 0 0; - /* 3 */ } + } -/** - * 1. Override inherited styles. - */ .kuiLocalSearchButton { width: 43px; height: 32px; font-size: 16px; line-height: 0; - /* 1 */ - color: #FFF; + color: #FFF; background-color: #1BA9F5; border: 0; border-radius: 0 4px 4px 0; } .kuiLocalSearchButton:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; + } -/** - * 1. We want the bottom border on selected tabs to be flush with the bottom of the container. - */ .kuiLocalTabs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; + align-items: flex-end; height: 100%; } -/** - * 1. Override inherited typographic styles. - */ .kuiLocalTab { - padding: 5px 0 6px 0; + padding: 5px 0 6px; font-size: 18px; color: #D4DAE5; border-bottom: 2px solid transparent; text-decoration: none; cursor: pointer; margin-top: 0 !important; - /* 1 */ - margin-bottom: 0 !important; - /* 1 */ - /** - * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show - * a regular cursor instead of setting pointer-events: none. - */ } + margin-bottom: 0 !important; + } .kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) { color: #1BA9F5; } .kuiLocalTab.kuiLocalTab-isSelected { @@ -1596,84 +1076,50 @@ main { .kuiLocalTab.kuiLocalTab-isDisabled { opacity: 0.5; cursor: default; - /* 1 */ } + } .kuiLocalTab + .kuiLocalTab { margin-left: 15px; } .kuiLocalTitle { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 12px 8px; font-size: 16px; font-weight: bold; border-bottom: 1px solid #343741; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 100%; - -ms-flex-preferred-size: 100%; - flex-basis: 100%; + flex-grow: 1; + flex-basis: 100%; background-color: #1D1E24; } .kuiLocalTitle:empty { padding: 0; display: none; } -/** - * 1. Put 10px of space between each child. - */ .kuiPager { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiPager > * + * { margin-left: 10px; - /* 1 */ } + } .kuiPagerText { font-size: 16px; line-height: 1.5; color: #98A2B3; white-space: nowrap; - /* 1 */ } + } .kuiPanel { - -webkit-box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3); - box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3); + box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3); background-color: #1D1E24; border: 1px solid #343741; border-radius: 4px; } .kuiPanel--prompt { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + flex-direction: column; + align-items: center; text-align: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; min-height: 300px; } .kuiPanel--prompt .kuiPanelBody { padding: 30px; @@ -1687,157 +1133,87 @@ main { border-radius: 0; } .kuiPanel--centered { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + justify-content: center; + align-items: center; } .kuiPanelHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 50px; border-bottom: 1px solid #343741; } .kuiPanelHeader .kuiButton:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; + } a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; + } .kuiPanelHeader .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; + } a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; + } .kuiPanelHeader .kuiSelect { border-color: #16171c; } .kuiPanelHeader .kuiSelect:not(a):enabled:focus { outline: none; border-color: #1BA9F5; } a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus { - /* 1 */ - outline: none; + outline: none; border-color: #1BA9F5; } -/** - * 1. This way we can use h1, h2, etc. - */ .kuiPanelHeader__title { font-size: 20px; line-height: 1.5; margin: 0; - /* 1 */ } + } -/** - * 1. Undo what barSection mixin does. - */ .kuiPanelHeaderSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiPanelHeaderSection:first-child { margin-left: 0; } .kuiPanelHeaderSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiPanelHeaderSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiPanelHeaderSection > * + * { margin-left: 10px; - /* 1 */ } + } .kuiPanelHeaderSection:only-child { margin-left: 0; - /* 1 */ - margin-right: auto; - /* 1 */ } + margin-right: auto; + } .kuiPanelBody { padding: 10px; } .kuiEmptyTablePrompt { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + flex-direction: column; + align-items: center; padding: 30px; } .kuiEmptyTablePrompt__message { @@ -1849,14 +1225,8 @@ main { margin-top: 10px; } .kuiStatusText { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; display: inline-flex; - -webkit-box-align: baseline; - -webkit-align-items: baseline; - -ms-flex-align: baseline; - align-items: baseline; } + align-items: baseline; } .kuiStatusText--info { color: #1BA9F5; } @@ -1870,113 +1240,71 @@ main { .kuiStatusText--error { color: #F66; } -/** - * 1. Set the image to be the same size as a font icon at 14px. - * 2. We need to cap the height too, in case the icon was designed thin and tall. - */ .kuiStatusText__icon { margin-right: 6px; width: 1.15em; - /* 1 */ - max-height: 1.15em; - /* 2 */ } + max-height: 1.15em; + } -/** - * 1. Make seamless transition from ToolBar to Table header and contained Menu. - * 1. Make seamless transition from Table to ToolBarFooter header. - */ .kuiControlledTable { background: #1D1E24; } .kuiControlledTable .kuiTable { border-top: none; - /* 1 */ } + } .kuiControlledTable .kuiToolBarFooter { border-top: none; - /* 2 */ } + } .kuiControlledTable .kuiMenu--contained { border-top: none; - /* 1 */ } + } -/** - * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed. - */ -/** - * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from - * specifying a column width, e.g. the checkbox column. - */ .kuiTable { width: 100%; border: 1px solid #343741; border-collapse: collapse; background-color: #1D1E24; } -/** - * 1. Allow contents of cells to determine table's width. - */ .kuiTable--fluid { width: auto; - /* 1 */ } + } .kuiTable--fluid .kuiTableHeaderCell, .kuiTable--fluid .kuiTableRowCell { max-width: none; - /* 1 */ } + } .kuiTableHeaderCell { font-size: 16px; font-weight: 400; text-align: left; max-width: 20px; - /* 1 */ - line-height: 1.5; + line-height: 1.5; color: #98A2B3; } .kuiTableHeaderCell__liner { display: inline-block; padding: 7px 8px 8px; } -/** - * 1. Prevent rapid clicking from selecting text. - * 2. Remove native button element styles. - * 3. Make buttons look and behave like table header cells. - */ .kuiTableHeaderCellButton { -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none; - /* 1 */ - cursor: pointer; + cursor: pointer; width: 100%; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: 0; - /* 2 */ - padding: 0; - /* 2 */ - color: inherit; - /* 3 */ - line-height: inherit; - /* 3 */ - font-size: inherit; - /* 3 */ - text-align: inherit; - /* 3 */ } + background-color: transparent; + border: 0; + padding: 0; + color: inherit; + line-height: inherit; + font-size: inherit; + text-align: inherit; + } .kuiTableHeaderCellButton:hover .kuiTableSortIcon { display: block; opacity: 1; } .kuiTableHeaderCellButton .kuiTableHeaderCell__liner { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiTableHeaderCell--alignRight { text-align: right; } @@ -2000,31 +1328,20 @@ main { font-weight: 400; text-align: left; max-width: 20px; - /* 1 */ - color: #DFE5EF; + color: #DFE5EF; border-top: 1px solid #343741; vertical-align: middle; } -/** - * 1. Vertically align all children. - * 2. The padding on this div allows the ellipsis to show if the content is truncated. If - * the padding was on the cell, the ellipsis would be cropped. - * 3. Truncate content with an ellipsis. - */ .kuiTableRowCell__liner { padding: 7px 8px 8px; - /* 2 */ - line-height: 1.5; - /* 1 */ - overflow: hidden; - /* 3 */ - text-overflow: ellipsis; - /* 3 */ - white-space: nowrap; - /* 3 */ } + line-height: 1.5; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } .kuiTableRowCell__liner > * { vertical-align: middle; - /* 1 */ } + } .kuiTableRowCell--wrap .kuiTableRowCell__liner { white-space: normal; } @@ -2033,34 +1350,24 @@ main { overflow: visible; white-space: normal; } -/** - * 1. We don't want to create too strong a disconnect between the original row and the row - * that contains its expanded details. - */ .kuiTableRowCell--expanded { border-top-color: #1D1E24; - /* 1 */ } + } .kuiTableRowCell--alignRight { text-align: right; } .kuiTableRowCell--alignRight .kuiTableRowCell__liner { text-align: right; } -/** - * 1. Rendered width of cell with checkbox inside of it. - * 2. Align checkbox with text in other cells. - * 3. Show the checkbox in Edge; otherwise it gets cropped. - */ .kuiTableHeaderCell--checkBox, .kuiTableRowCell--checkBox { width: 28px; - /* 1 */ - line-height: 1; - /* 2 */ } + line-height: 1; + } .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, .kuiTableRowCell--checkBox .kuiTableRowCell__liner { overflow: visible; - /* 3 */ } + } .kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner, .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, .kuiTableRowCell--checkBox .kuiTableHeaderCell__liner, @@ -2074,49 +1381,33 @@ main { line-height: 1.5; } .kuiTabs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; border-bottom: 1px solid #343741; } -/** - * 1. Override button styles (some of which are from Bootstrap). - * 2. Adding a border shifts tabs right by 1px, so we need to shift them back. - * 3. Move the tab down so that its bottom border covers the container's bottom border. - * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more - * of padding to make sure the text doesn't shift down. - */ .kuiTab { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - /* 1 */ - cursor: pointer; + cursor: pointer; padding: 10px 30px; font-size: 16px; color: #98A2B3; background-color: transparent; - /* 1 */ - border: 1px solid #343741; + border: 1px solid #343741; border-radius: 0; - /* 1 */ - margin-bottom: -1px; - /* 3 */ } + margin-bottom: -1px; + } .kuiTab + .kuiTab { border-left: none; } .kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { margin-left: -1px; - /* 2 */ } + } .kuiTab:active { outline: none !important; - /* 1 */ - -webkit-box-shadow: none; - box-shadow: none; - /* 1 */ } + box-shadow: none; + } .kuiTab:focus { outline: none; - /* 1 */ } + } .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { z-index: 1; color: #1BA9F5; @@ -2131,214 +1422,120 @@ main { border-bottom-color: transparent; } .kuiToolBar { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 50px; background-color: transparent; border: solid 1px #343741; } .kuiToolBar .kuiButton:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; + } a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5; + } .kuiToolBar .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; + } a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66; + } .kuiToolBar .kuiSelect { border-color: #16171c; } .kuiToolBar .kuiSelect:not(a):enabled:focus { outline: none; border-color: #1BA9F5; } a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus { - /* 1 */ - outline: none; + outline: none; border-color: #1BA9F5; } .kuiToolBarSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiToolBarSection:first-child { margin-left: 0; } .kuiToolBarSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiToolBarSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiToolBarSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Override Bar styles and put Search on the left side. - */ .kuiToolBar--searchOnly .kuiToolBarSearch { margin-left: 0 !important; - /* 1 */ } + } .kuiToolBarFooter { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 40px; background-color: #1D1E24; } .kuiToolBarFooterSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiToolBarFooterSection:first-child { margin-left: 0; } .kuiToolBarFooterSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiToolBarFooterSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiToolBarFooterSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Put 10px of space between each child. - * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single - * kuiToolBarSection sibling. - */ .kuiToolBarSearch { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; margin-left: 25px; margin-right: 25px; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; max-width: 100%; - /* 2 */ - line-height: 1.5; } + line-height: 1.5; } .kuiToolBarSearch:first-child { margin-left: 0; } .kuiToolBarSearch:last-child { margin-right: 0; } .kuiToolBarSearch > * + * { margin-left: 10px; - /* 1 */ } + } .kuiToolBarSearchBox { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; position: relative; font-size: 16px; max-width: 800px; } @@ -2348,88 +1545,57 @@ main { top: 0.5em; left: 0.7em; font-size: 1em; - color: #ACACAC; } + color: #acacac; } -/** - * 1. Fix inherited styles (possibly from Bootstrap). - */ .kuiToolBarSearchBox__input { width: 100%; min-width: 200px; padding: 4px 12px 5px 28px; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - /* 1 */ - background-color: #1D1E24; + font-family: "var(--font-text)"; + background-color: #1D1E24; color: #DFE5EF; border-radius: 4px; font-size: 1em; border: 1px solid #343741; line-height: normal; - /* 1 */ - -webkit-transition: border-color 0.1s linear; - transition: border-color 0.1s linear; } + transition: border-color 0.1s linear; } .kuiToolBarSearchBox__input:focus { outline: none; border-color: #1BA9F5; } -/* - * 1. We don't want the text to take up two lines and overflow the ToolBar. - */ .kuiToolBarText { font-size: 16px; line-height: 1.5; color: #98A2B3; white-space: nowrap; - /* 1 */ } + } -/** - * 1. Override h1. - */ .kuiTitle { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - font-size: 24px; } + font-weight: 400; + font-size: 24px; } -/** - * 1. Override h2, h3, etc. - */ .kuiSubTitle { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - font-size: 20px; } + font-weight: 400; + font-size: 20px; } -/** - * 1. Override p. - */ .kuiTextTitle { margin: 0; - /* 1 */ - font-weight: 700; - /* 1 */ - line-height: 1.5; + font-weight: 700; + line-height: 1.5; font-size: 16px; } -/** - * 1. Override p. - */ .kuiText { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - line-height: 1.5; + font-weight: 400; + line-height: 1.5; font-size: 16px; } .kuiSubText { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - line-height: 1.5; + font-weight: 400; + line-height: 1.5; font-size: 14px; } .kuiSubduedText { @@ -2448,11 +1614,8 @@ main { margin-top: 32px; } .kuiView { - background-color: #FFF; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; } + background-color: #fff; + flex: 1 1 auto; } .kuiViewContent { padding-top: 20px; diff --git a/packages/osd-ui-framework/dist/kui_light.css b/packages/osd-ui-framework/dist/kui_light.css index 9b42bbb517f4..e5f63568add5 100644 --- a/packages/osd-ui-framework/dist/kui_light.css +++ b/packages/osd-ui-framework/dist/kui_light.css @@ -1,152 +1,52 @@ -/* 1 */ -/* 1 */ -/** - * 1. Extend beta badges to at least 40% of the container's width - * 2. Fix for IE to ensure badges are visible outside of a tag - */ -/** - * 1. Apply margin to all but last item in the flex. - * 2. Margin gets flipped because of the row-reverse. - */ -/** - * 3. Must supply both values to background-size or some browsers apply the single value to both directions - */ -/** - * 4. Override invalid state with focus state. - */ -/** - * Mixin for use in: - * - EuiCard - * - EuiPageContent -*/ -/** - * 1. Enforce pointer when there's no href. - * 2. Allow these styles to be applied to a button element. - */ -/** - * 1. Override Bootstrap styles. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :disabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * 1. Links can't have a disabled attribute, so they can't support :enabled. - */ -/** - * Nothing fancy, just the basics so we can use this for both regular and static controls. - */ -/** - * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height. - */ -/** - * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly - * coupled with Angular. - */ -/** - * 1. Embedded SVG of fa-caret-down (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg). - * 2. Make room on right side for the caret. - * 3. Prevent Firefox from showing dotted line around text on focus. - */ -/** - * 1. Setting to inline-block guarantees the same height when applied to both - * button elements and anchor tags. - * 2. Fit MicroButton inside of Table rows without pushing them taller. - */ -/** - * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't - * depend on them to give it the desired height. - */ -/** - * 1. Put 10px of space between each child. - * 2. If there is only one section, align it to the right. If you wanted it aligned right, you - * wouldn't use the Bar in the first place. - * 3. Children in the middle should center their content. - * 4. Fix an IE bug which causes the last child to overflow the container. - * 5. Fixing this bug means we now need to align the children to the right. - */ -/** - * 1. Required for IE11. +/*! + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. */ + main { display: block; - /* 1 */ } + } .kuiBar { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ } + } .kuiBarSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiBarSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiBarSection:first-child { margin-left: 0; } .kuiBarSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiBarSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiBarSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Setting to inline-block guarantees the same height when applied to both - * button elements and anchor tags. - * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but - * at least make them look like they're not focused. - */ .kuiButton { display: inline-block; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; + -webkit-appearance: none; + appearance: none; cursor: pointer; padding: 4px 12px 5px; font-size: 16px; @@ -158,32 +58,21 @@ main { border-radius: 4px; } .kuiButton:disabled { cursor: not-allowed; - opacity: .5; } + opacity: 0.5; } a.kuiButton.kuiButton-isDisabled { cursor: not-allowed; - opacity: .5; } + opacity: 0.5; } .kuiButton:enabled:active { -webkit-transform: translateY(1px); transform: translateY(1px); } a.kuiButton:not(.kuiButton-isDisabled):active { - /* 1 */ - -webkit-transform: translateY(1px); - transform: translateY(1px); } + -webkit-transform: translateY(1px); + transform: translateY(1px); } -/** - * 1. Solves whitespace problems introduced by inline elements. - */ .kuiButton__inner { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - /* 1 */ - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - /* 1 */ } + align-items: center; + } .kuiButton--small { font-size: 12px; @@ -206,124 +95,85 @@ main { .kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) { margin-left: 4px; } -/** - * 1. Override Bootstrap. - */ .kuiButton--basic { color: #343741; background-color: #F5F7FA; } .kuiButton--basic:not(a):enabled:focus { color: #343741; } a.kuiButton--basic:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #343741; } + color: #343741; } .kuiButton--basic:enabled:hover { background-color: #d3dce9 !important; - /* 1 */ } + } a.kuiButton--basic:not(.kuiButton-isDisabled):hover { - /* 1 */ - background-color: #d3dce9 !important; - /* 1 */ } + background-color: #d3dce9 !important; + } .kuiButton--basic:enabled:active { background-color: #d3dce9 !important; - /* 1 */ } + } a.kuiButton--basic:not(.kuiButton-isDisabled):active { - /* 1 */ - background-color: #d3dce9 !important; - /* 1 */ } + background-color: #d3dce9 !important; + } -/** - * 1. Override Bootstrap. - */ .kuiButton--primary { color: #FFF; background-color: #006BB4; } .kuiButton--primary:not(a):enabled:focus { color: #FFF; } a.kuiButton--primary:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #FFF; } + color: #FFF; } .kuiButton--primary:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #004d81; } + background-color: #004d81; } a.kuiButton--primary:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #004d81; } + color: #FFF !important; + background-color: #004d81; } .kuiButton--primary:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #004d81; } + background-color: #004d81; } a.kuiButton--primary:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #004d81; } + color: #FFF !important; + background-color: #004d81; } -/** - * 1. Override Bootstrap. - */ .kuiButton--success { color: #FFF; background-color: #017D73; } .kuiButton--success:not(a):enabled:focus { color: #FFF; } a.kuiButton--success:not(.kuiButton-isDisabled):focus { - /* 1 */ - color: #FFF; } + color: #FFF; } .kuiButton--success:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #014a44; } + background-color: #014a44; } a.kuiButton--success:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #014a44; } + color: #FFF !important; + background-color: #014a44; } .kuiButton--success:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #014a44; } + background-color: #014a44; } a.kuiButton--success:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #014a44; } + color: #FFF !important; + background-color: #014a44; } -/** - * 1. Override Bootstrap. - */ .kuiButton--danger { color: #BD271E; border: solid 1px #BD271E; } .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; - /* 3 */ - color: #BD271E; } + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; + color: #BD271E; } a.kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; - /* 3 */ - color: #BD271E; } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; + color: #BD271E; } .kuiButton--danger:enabled:hover { color: #911e17 !important; border: solid 1px #911e17; background-color: rgba(189, 39, 30, 0.1); } a.kuiButton--danger:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #911e17 !important; + color: #911e17 !important; border: solid 1px #911e17; background-color: rgba(189, 39, 30, 0.1); } .kuiButton--danger:enabled:active { @@ -331,126 +181,83 @@ main { border: solid 1px #911e17; background-color: rgba(189, 39, 30, 0.1); } a.kuiButton--danger:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #911e17 !important; + color: #911e17 !important; border: solid 1px #911e17; background-color: rgba(189, 39, 30, 0.1); } -/** - * 1. Override Bootstrap. - */ .kuiButton--warning { color: #FFF; background-color: #F5A700; } .kuiButton--warning:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; - box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; - /* 3 */ - color: #FFF; } + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; + color: #FFF; } a.kuiButton--warning:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; - box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; - /* 3 */ - color: #FFF; } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; + color: #FFF; } .kuiButton--warning:enabled:hover { color: #FFF !important; - /* 1 */ - background-color: #c28400; } + background-color: #c28400; } a.kuiButton--warning:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #c28400; } + color: #FFF !important; + background-color: #c28400; } .kuiButton--warning:enabled:active { color: #FFF !important; - /* 1 */ - background-color: #c28400; } + background-color: #c28400; } a.kuiButton--warning:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #FFF !important; - /* 1 */ - background-color: #c28400; } + color: #FFF !important; + background-color: #c28400; } .kuiButton--warning:disabled { background-color: #ffbb29; } a.kuiButton--warning.kuiButton-isDisabled { background-color: #ffbb29; } -/** - * 1. Override Bootstrap. - * 2. Override either Bootstrap or Timelion styles. - */ .kuiButton--hollow { color: #006BB4 !important; - /* 2 */ - background-color: transparent; } + background-color: transparent; } .kuiButton--hollow:enabled:hover { color: #004d81 !important; - /* 1 */ - text-decoration: underline; } + text-decoration: underline; } a.kuiButton--hollow:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #004d81 !important; - /* 1 */ - text-decoration: underline; } + color: #004d81 !important; + text-decoration: underline; } .kuiButton--hollow:enabled:active { color: #004d81 !important; - /* 1 */ - text-decoration: underline; } + text-decoration: underline; } a.kuiButton--hollow:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #004d81 !important; - /* 1 */ - text-decoration: underline; } + color: #004d81 !important; + text-decoration: underline; } .kuiButton--secondary { color: #006BB4 !important; - /* 2 */ - border: solid 1px #006BB4; } + border: solid 1px #006BB4; } .kuiButton--secondary:enabled:hover { color: #004d81 !important; - /* 1 */ - border: solid 1px #004d81; + border: solid 1px #004d81; background-color: rgba(0, 107, 180, 0.1); text-decoration: underline; } a.kuiButton--secondary:not(.kuiButton-isDisabled):hover { - /* 1 */ - color: #004d81 !important; - /* 1 */ - border: solid 1px #004d81; + color: #004d81 !important; + border: solid 1px #004d81; background-color: rgba(0, 107, 180, 0.1); text-decoration: underline; } .kuiButton--secondary:enabled:active { color: #004d81 !important; - /* 1 */ - border: solid 1px #004d81; + border: solid 1px #004d81; background-color: rgba(0, 107, 180, 0.1); text-decoration: underline; } a.kuiButton--secondary:not(.kuiButton-isDisabled):active { - /* 1 */ - color: #004d81 !important; - /* 1 */ - border: solid 1px #004d81; + color: #004d81 !important; + border: solid 1px #004d81; background-color: rgba(0, 107, 180, 0.1); text-decoration: underline; } .kuiButtonGroup { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiButtonGroup .kuiButton + .kuiButton { margin-left: 4px; } @@ -466,24 +273,15 @@ main { border-bottom-left-radius: 0; } .kuiButtonGroup--united > .kuiButton:only-child { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; } + border-radius: 4px 4px 4px 4px; } .kuiButtonGroup--united .kuiButton + .kuiButton { margin-left: 0; } .kuiButtonGroup--fullWidth { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiButtonGroup--fullWidth > .kuiButton { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; text-align: center; } .eui-textCenter > .kuiButtonGroup, @@ -492,7 +290,6 @@ main { .kuiCollapseButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; padding: 4px; @@ -500,95 +297,64 @@ main { line-height: 1; font-size: 16px; color: #343741 !important; - /* 1 */ - cursor: pointer; + cursor: pointer; opacity: 0.35; } .kuiCollapseButton:hover { opacity: 1; } -/** - * 1. Set inline-block so this wrapper shrinks to fit the input. - */ .kuiAssistedInput { display: inline-block; - /* 1 */ - position: relative; } + position: relative; } -/** - * 1. Vertically center the assistance, regardless of its height. - */ .kuiAssistedInput__assistance { position: absolute; right: 12px; top: 50%; - /* 1 */ - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - /* 1 */ } + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } -/** - * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really - * ugly default appearance which we can't customize, so our best option is to give Firefox - * control over the checkbox's appearance. - * 2. Override default styles (possibly from Bootstrap). - */ .kuiCheckBox { -webkit-appearance: none; - /* 1 */ - background-color: #fbfcfd; + appearance: none; + background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; width: 16px; height: 16px; - line-height: 1.5 !important; - /* 2 */ - margin: 0 !important; - /* 2 */ - font: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; - /* 2 */ - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; - /* 2 */ - font-size: 10px !important; - /* 2 */ - -webkit-transition: background-color 0.1s linear; - transition: background-color 0.1s linear; } - .kuiCheckBox:before { + font: "var(--font-text)" !important; + line-height: 1.5 !important; + margin: 0 !important; + font-family: "var(--font-text)" !important; + font-size: 10px !important; + transition: background-color 0.1s linear; } + .kuiCheckBox::before { position: relative; left: 0.25em; - font-family: FontAwesome; + font-family: FontAwesome, sans-serif; content: "\F00C"; font-size: 1em; opacity: 0; color: #FFF; - -webkit-transition: opacity 0.1s linear; transition: opacity 0.1s linear; } .kuiCheckBox:checked { border-color: #006BB4; background-color: #006BB4; } - .kuiCheckBox:checked:before { + .kuiCheckBox:checked::before { opacity: 1; } .kuiCheckBox:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4; + } .kuiCheckBox:disabled { background-color: #eef2f7 !important; border-color: #eef2f7 !important; cursor: not-allowed !important; } .kuiCheckBoxLabel { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; font-weight: normal !important; line-height: 1.5; } @@ -596,15 +362,12 @@ main { font-size: 16px; margin-left: 8px; } -/** - * 1. Override Bootstrap. - */ .kuiLabel { font-size: 16px; line-height: 1.5; font-weight: bold; margin-bottom: 0; - /* 1 */ } + } .kuiSearchInput { width: 180px; @@ -622,15 +385,10 @@ main { font-size: 1em; color: #98A2B3; } -/** - * 1. Make space for search icon. - * 2. Expand to fill container. - */ .kuiSearchInput__input { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -639,14 +397,11 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-left: 28px; - /* 1 */ - width: 100%; - /* 2 */ } + padding-left: 28px; + width: 100%; + } .kuiSearchInput__input:invalid { border-color: #BD271E; } .kuiSearchInput__input:focus { @@ -662,14 +417,10 @@ main { .kuiSearchInput--large { width: 400px; } -/** - * Avoid setting a width here, so that the width of the options can dynamically set the width. - */ .kuiSelect { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -678,18 +429,14 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-right: 30px; - /* 2 */ - background-image: url('data:image/svg+xml;utf8,'); - /* 1 */ - background-size: 14px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; background-repeat: no-repeat; background-position: calc(100% - 8px); - /* 2 */ } + } .kuiSelect:invalid { border-color: #BD271E; } .kuiSelect:focus { @@ -700,12 +447,11 @@ main { cursor: not-allowed; } .kuiSelect:-moz-focusring { text-shadow: 0 0 0; - /* 3 */ } + } .kuiSelect.kuiSelect-isInvalid { border-color: #BD271E; } .kuiSelect:focus { - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; outline: none; border-color: #006BB4; } @@ -718,30 +464,24 @@ main { .kuiSelect--large { width: 400px; } -/** - * 1. Have the same spatial footprint as the regular input. - */ .kuiStaticInput { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; line-height: 1.5; color: #343741; border: 1px solid transparent; - /* 1 */ - background-color: transparent; } + background-color: transparent; } .kuiTextArea { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -750,10 +490,9 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ } + } .kuiTextArea:invalid { border-color: #BD271E; } .kuiTextArea:focus { @@ -763,8 +502,7 @@ main { opacity: 0.4; cursor: not-allowed; } .kuiTextArea:focus { - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; outline: none; border-color: #006BB4; } .kuiTextArea.kuiTextArea-isInvalid { @@ -782,9 +520,8 @@ main { .kuiTextInput { width: 180px; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -793,10 +530,9 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ } + } .kuiTextInput:invalid { border-color: #BD271E; } .kuiTextInput:focus { @@ -814,25 +550,13 @@ main { .kuiTextInput--large { width: 400px; } -/** - * 1. We may want to put elements in here which have different heights. - */ .kuiFieldGroup { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - /* 1 */ } + align-items: center; + } .kuiFieldGroup--alignTop { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; } + align-items: flex-start; } .kuiFieldGroupSection { line-height: 1.5; } @@ -840,30 +564,18 @@ main { margin-left: 10px; } .kuiFieldGroupSection--wide { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; } + flex: 1 1 auto; } .kuiFieldGroupSection--wide > * { width: 100%; } -/** - * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away - * from FontAwesome someday. When we do migrate away, we can just update this definition. - */ .kuiIcon { display: inline-block; - /* 1 */ - font: normal normal normal 14px/1 FontAwesome; - /* 1 */ - font-size: inherit; - /* 1 */ - text-rendering: auto; - /* 1 */ - -webkit-font-smoothing: antialiased; - /* 1 */ - -moz-osx-font-smoothing: grayscale; - /* 1 */ } + font: normal normal normal 14px/1 FontAwesome, sans-serif; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } .kuiIcon--info { color: #006BB4; } @@ -888,47 +600,26 @@ main { line-height: 1.5; border: 2px solid; } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--info { border-color: rgba(0, 107, 180, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--success { border-color: rgba(1, 125, 115, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--warning { border-color: rgba(245, 167, 0, 0.25); - /* 1 */ } + } -/** - * 1. TODO: Pick a hex value instead of making these colors translucent. - */ .kuiInfoPanel--error { border-color: rgba(189, 39, 30, 0.25); - /* 1 */ } + } -/** - * 1. Align with first line of title text if it wraps. - */ .kuiInfoPanelHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: baseline; - -webkit-align-items: baseline; - -ms-flex-align: baseline; - align-items: baseline; - /* 1 */ } + align-items: baseline; + } .kuiInfoPanelHeader__icon { margin-right: 10px; @@ -953,48 +644,26 @@ main { color: #006BB4; text-decoration: none; cursor: pointer; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: none; - /* 2 */ - font-size: inherit; - /* 2 */ - line-height: inherit; - /* 2 */ } + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + } .kuiLink:visited, .kuiLink:active { color: #006BB4; } .kuiLink:hover { color: #004d81; text-decoration: underline; } -/** - * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over - * a bit. - */ .kuiLocalBreadcrumbs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 12px 8px; - /* 1 */ - border-bottom: 1px solid #D3DAE6; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 100%; - -ms-flex-preferred-size: 100%; - flex-basis: 100%; + border-bottom: 1px solid #D3DAE6; + flex-grow: 1; + flex-basis: 100%; background-color: #FFF; } .kuiLocalBreadcrumb { @@ -1003,38 +672,25 @@ main { font-weight: normal; } .kuiLocalBreadcrumb + .kuiLocalBreadcrumb { margin-left: 6px; } - .kuiLocalBreadcrumb + .kuiLocalBreadcrumb:before { - content: '/'; + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before { + content: "/"; -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none; margin-right: 4px; color: #D3DAE6; } -/** - * 1. Make it a bit darker to contrast with the gray background. - */ .kuiLocalBreadcrumb__link { color: #006BB4; text-decoration: none; cursor: pointer; - /* 1 */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: none; - /* 2 */ - font-size: inherit; - /* 2 */ - line-height: inherit; - /* 2 */ - color: #006BB4; - /* 1 */ - font-size: 16px; } + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + color: #006BB4; + font-size: 16px; } .kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active { color: #006BB4; } .kuiLocalBreadcrumb__link:hover { @@ -1054,26 +710,13 @@ main { padding: 0; } .kuiDatePickerNavigation { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; margin-bottom: 4px; } -/** - * 1. Override inherited styles. - */ .kuiDatePickerNavigationButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; border: none; @@ -1087,14 +730,10 @@ main { background-color: #006BB4; } .kuiDatePickerNavigationButton:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; - /* 3 */ - color: #343741; - /* 1 */ } + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; + color: #343741; + } .kuiDatePickerHeaderCell { padding: 9px 0; @@ -1107,22 +746,14 @@ main { .kuiDatePickerRowCell { padding: 0; text-align: center; - /** - * This state class exists to support weird angular-bootstrap datepicker functionality, - * in which you can't select a day on the "From" calendar if it falls after the selected day in - * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day). - */ } + } .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked { cursor: not-allowed; } .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent { pointer-events: none; } -/** - * 1. Override inherited styles. - */ .kuiDatePickerRowCellContent { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; width: 100%; @@ -1134,14 +765,10 @@ main { line-height: 1.2; } .kuiDatePickerRowCellContent:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; - /* 3 */ - color: #343741; - /* 1 */ } + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; + color: #343741; + } .kuiDatePickerRowCellContent:disabled { pointer-events: none; opacity: 0.5; } @@ -1167,7 +794,6 @@ main { .kuiLocalDropdownCloseButton { -webkit-appearance: none; - -moz-appearance: none; appearance: none; background-color: transparent; padding: 4px; @@ -1175,8 +801,7 @@ main { line-height: 1; font-size: 16px; color: #343741 !important; - /* 1 */ - cursor: pointer; + cursor: pointer; opacity: 0.35; position: absolute; top: 1px; @@ -1185,16 +810,10 @@ main { opacity: 1; } .kuiLocalDropdownPanels { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiLocalDropdownPanel { - -webkit-box-flex: 1; - -webkit-flex: 1 1 0%; - -ms-flex: 1 1 0%; - flex: 1 1 0%; } + flex: 1 1 0%; } .kuiLocalDropdownPanel--left { margin-right: 30px; } @@ -1202,13 +821,9 @@ main { .kuiLocalDropdownPanel--right { margin-left: 30px; } -/** - * 1. Override inherited styles. - */ .kuiLocalDropdownTitle { margin-top: 0; - /* 1 */ - margin-bottom: 12px; + margin-bottom: 12px; font-size: 18px; color: #343741; } @@ -1218,34 +833,18 @@ main { margin-bottom: 0; } .kuiLocalDropdownHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; margin-bottom: 6px; } -/** - * 1. Override inherited styles. - */ .kuiLocalDropdownHeader__label { font-size: 14px; font-weight: 700; margin-bottom: 0; - /* 1 */ - color: #343741; } + color: #343741; } .kuiLocalDropdownHeader__actions { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .kuiLocalDropdownHeader__action { @@ -1289,26 +888,14 @@ main { color: #69707D; } .kuiLocalMenu { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; + align-items: stretch; padding-top: 8px; padding-bottom: 8px; } .kuiLocalMenuItem { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 2px 8px; font-size: 16px; background-color: transparent; @@ -1337,87 +924,39 @@ main { margin-right: 5px; margin-bottom: -1px; } -/** - * 1. Match height of logo in side bar, but allow it to expand to accommodate - * dropdown. - */ .kuiLocalNav { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + flex-direction: column; + justify-content: space-between; min-height: 69px; - /* 1 */ - color: #343741; + color: #343741; background-color: #FFF; line-height: 1.5; border-bottom: solid 1px #D3DAE6; } -/** - * 1. Allow row to expand if the content is so long that it wraps. - */ .kuiLocalNavRow { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; } + align-items: stretch; + justify-content: space-between; } .kuiLocalNavRow__section { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; } - -/** - * 1. We make this row flex-start because it usually contains a search input, which may expand - * beyond the height of this container. We can't use `align-items: center`, because this would - * cause the search input to overflow both on the top and bottom; `align-items: flex-start` - * makes it only overflow on the bottom. But this means we need to manually center the content - * of this container using padding. - */ + align-items: stretch; } + .kuiLocalNavRow--secondary { padding: 0 8px; - /* 1 */ - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - /* 1 */ } + align-items: flex-start; + } .kuiLocalSearch { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; margin-bottom: 8px; } .kuiLocalSearchInput { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -1426,14 +965,9 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - -webkit-box-flex: 1; - -webkit-flex: 1 1 100%; - -ms-flex: 1 1 100%; - flex: 1 1 100%; + flex: 1 1 100%; border-color: #FFF; border-color: #D3DAE6; border-radius: 4px 0 0 4px; } @@ -1446,59 +980,34 @@ main { opacity: 0.4; cursor: not-allowed; } .kuiLocalSearchInput:focus { - -webkit-box-shadow: none; - box-shadow: none; } + box-shadow: none; } .kuiLocalSearchInput.kuiLocalSearchInput-isInvalid { border-color: #BD271E; } .kuiLocalSearchInput--secondary { height: 32px; - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; + flex: 0 0 auto; border-radius: 0; border-left-width: 0; } -.kuiLocalSearchAssistedInput { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1 1 100%; - -ms-flex: 1 1 100%; - flex: 1 1 100%; - position: relative; } - -/** - * 1. em used for right padding so documentation link and query string - * won't overlap if the user increases their default browser font size - * This is sized for the 'Options' link - */ .kuiLocalSearchInput, .kuiLocalSearchAssistedInput__input { padding-right: 6em; - /* 1 */ } + } -/** - * 1. Vertically center the assistance, regardless of its height. - */ .kuiLocalSearchAssistedInput__assistance { position: absolute; right: 6px; top: 50%; - /* 1 */ - z-index: 2; + z-index: 2; -webkit-transform: translateY(-50%); transform: translateY(-50%); - /* 1 */ } + } .kuiLocalSearchSelect { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: "var(--font-text)"; padding: 4px 12px 4px; font-size: 16px; font-weight: 400; @@ -1507,19 +1016,14 @@ main { background-color: #fbfcfd; border: 1px solid rgba(15, 39, 118, 0.1); border-radius: 4px; - -webkit-transition: border-color 0.1s linear; transition: border-color 0.1s linear; min-height: 32px; - /* 1 */ - padding-right: 30px; - /* 2 */ - background-image: url('data:image/svg+xml;utf8,'); - /* 1 */ - background-size: 14px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; background-repeat: no-repeat; background-position: calc(100% - 8px); - /* 2 */ - border-left-width: 0; + border-left-width: 0; border-radius: 0; } .kuiLocalSearchSelect:invalid { border-color: #BD271E; } @@ -1531,62 +1035,38 @@ main { cursor: not-allowed; } .kuiLocalSearchSelect:-moz-focusring { text-shadow: 0 0 0; - /* 3 */ } + } -/** - * 1. Override inherited styles. - */ .kuiLocalSearchButton { width: 43px; height: 32px; font-size: 16px; line-height: 0; - /* 1 */ - color: #FFF; + color: #FFF; background-color: #006BB4; border: 0; border-radius: 0 4px 4px 0; } .kuiLocalSearchButton:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } -/** - * 1. We want the bottom border on selected tabs to be flush with the bottom of the container. - */ .kuiLocalTabs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; + align-items: flex-end; height: 100%; } -/** - * 1. Override inherited typographic styles. - */ .kuiLocalTab { - padding: 5px 0 6px 0; + padding: 5px 0 6px; font-size: 18px; color: #343741; border-bottom: 2px solid transparent; text-decoration: none; cursor: pointer; margin-top: 0 !important; - /* 1 */ - margin-bottom: 0 !important; - /* 1 */ - /** - * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show - * a regular cursor instead of setting pointer-events: none. - */ } + margin-bottom: 0 !important; + } .kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) { color: #006BB4; } .kuiLocalTab.kuiLocalTab-isSelected { @@ -1596,84 +1076,50 @@ main { .kuiLocalTab.kuiLocalTab-isDisabled { opacity: 0.5; cursor: default; - /* 1 */ } + } .kuiLocalTab + .kuiLocalTab { margin-left: 15px; } .kuiLocalTitle { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; padding: 12px 8px; font-size: 16px; font-weight: bold; border-bottom: 1px solid #D3DAE6; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 100%; - -ms-flex-preferred-size: 100%; - flex-basis: 100%; + flex-grow: 1; + flex-basis: 100%; background-color: #FFF; } .kuiLocalTitle:empty { padding: 0; display: none; } -/** - * 1. Put 10px of space between each child. - */ .kuiPager { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiPager > * + * { margin-left: 10px; - /* 1 */ } + } .kuiPagerText { font-size: 16px; line-height: 1.5; color: #69707D; white-space: nowrap; - /* 1 */ } + } .kuiPanel { - -webkit-box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3); - box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3); + box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3); background-color: #FFF; border: 1px solid #D3DAE6; border-radius: 4px; } .kuiPanel--prompt { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + flex-direction: column; + align-items: center; text-align: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; min-height: 300px; } .kuiPanel--prompt .kuiPanelBody { padding: 30px; @@ -1687,157 +1133,87 @@ main { border-radius: 0; } .kuiPanel--centered { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + justify-content: center; + align-items: center; } .kuiPanelHeader { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 50px; border-bottom: 1px solid #D3DAE6; } .kuiPanelHeader .kuiButton:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } .kuiPanelHeader .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } .kuiPanelHeader .kuiSelect { border-color: #fbfcfd; } .kuiPanelHeader .kuiSelect:not(a):enabled:focus { outline: none; border-color: #006BB4; } a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus { - /* 1 */ - outline: none; + outline: none; border-color: #006BB4; } -/** - * 1. This way we can use h1, h2, etc. - */ .kuiPanelHeader__title { font-size: 20px; line-height: 1.5; margin: 0; - /* 1 */ } + } -/** - * 1. Undo what barSection mixin does. - */ .kuiPanelHeaderSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiPanelHeaderSection:first-child { margin-left: 0; } .kuiPanelHeaderSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiPanelHeaderSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiPanelHeaderSection > * + * { margin-left: 10px; - /* 1 */ } + } .kuiPanelHeaderSection:only-child { margin-left: 0; - /* 1 */ - margin-right: auto; - /* 1 */ } + margin-right: auto; + } .kuiPanelBody { padding: 10px; } .kuiEmptyTablePrompt { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + flex-direction: column; + align-items: center; padding: 30px; } .kuiEmptyTablePrompt__message { @@ -1849,14 +1225,8 @@ main { margin-top: 10px; } .kuiStatusText { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; display: inline-flex; - -webkit-box-align: baseline; - -webkit-align-items: baseline; - -ms-flex-align: baseline; - align-items: baseline; } + align-items: baseline; } .kuiStatusText--info { color: #006BB4; } @@ -1870,113 +1240,71 @@ main { .kuiStatusText--error { color: #BD271E; } -/** - * 1. Set the image to be the same size as a font icon at 14px. - * 2. We need to cap the height too, in case the icon was designed thin and tall. - */ .kuiStatusText__icon { margin-right: 6px; width: 1.15em; - /* 1 */ - max-height: 1.15em; - /* 2 */ } + max-height: 1.15em; + } -/** - * 1. Make seamless transition from ToolBar to Table header and contained Menu. - * 1. Make seamless transition from Table to ToolBarFooter header. - */ .kuiControlledTable { background: #FFF; } .kuiControlledTable .kuiTable { border-top: none; - /* 1 */ } + } .kuiControlledTable .kuiToolBarFooter { border-top: none; - /* 2 */ } + } .kuiControlledTable .kuiMenu--contained { border-top: none; - /* 1 */ } + } -/** - * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed. - */ -/** - * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from - * specifying a column width, e.g. the checkbox column. - */ .kuiTable { width: 100%; border: 1px solid #D3DAE6; border-collapse: collapse; background-color: #FFF; } -/** - * 1. Allow contents of cells to determine table's width. - */ .kuiTable--fluid { width: auto; - /* 1 */ } + } .kuiTable--fluid .kuiTableHeaderCell, .kuiTable--fluid .kuiTableRowCell { max-width: none; - /* 1 */ } + } .kuiTableHeaderCell { font-size: 16px; font-weight: 400; text-align: left; max-width: 20px; - /* 1 */ - line-height: 1.5; + line-height: 1.5; color: #69707D; } .kuiTableHeaderCell__liner { display: inline-block; padding: 7px 8px 8px; } -/** - * 1. Prevent rapid clicking from selecting text. - * 2. Remove native button element styles. - * 3. Make buttons look and behave like table header cells. - */ .kuiTableHeaderCellButton { -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none; - /* 1 */ - cursor: pointer; + cursor: pointer; width: 100%; -webkit-appearance: none; - -moz-appearance: none; appearance: none; - /* 2 */ - background-color: transparent; - /* 2 */ - border: 0; - /* 2 */ - padding: 0; - /* 2 */ - color: inherit; - /* 3 */ - line-height: inherit; - /* 3 */ - font-size: inherit; - /* 3 */ - text-align: inherit; - /* 3 */ } + background-color: transparent; + border: 0; + padding: 0; + color: inherit; + line-height: inherit; + font-size: inherit; + text-align: inherit; + } .kuiTableHeaderCellButton:hover .kuiTableSortIcon { display: block; opacity: 1; } .kuiTableHeaderCellButton .kuiTableHeaderCell__liner { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } + align-items: center; } .kuiTableHeaderCell--alignRight { text-align: right; } @@ -2000,31 +1328,20 @@ main { font-weight: 400; text-align: left; max-width: 20px; - /* 1 */ - color: #343741; + color: #343741; border-top: 1px solid #D3DAE6; vertical-align: middle; } -/** - * 1. Vertically align all children. - * 2. The padding on this div allows the ellipsis to show if the content is truncated. If - * the padding was on the cell, the ellipsis would be cropped. - * 3. Truncate content with an ellipsis. - */ .kuiTableRowCell__liner { padding: 7px 8px 8px; - /* 2 */ - line-height: 1.5; - /* 1 */ - overflow: hidden; - /* 3 */ - text-overflow: ellipsis; - /* 3 */ - white-space: nowrap; - /* 3 */ } + line-height: 1.5; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } .kuiTableRowCell__liner > * { vertical-align: middle; - /* 1 */ } + } .kuiTableRowCell--wrap .kuiTableRowCell__liner { white-space: normal; } @@ -2033,34 +1350,24 @@ main { overflow: visible; white-space: normal; } -/** - * 1. We don't want to create too strong a disconnect between the original row and the row - * that contains its expanded details. - */ .kuiTableRowCell--expanded { border-top-color: #FFF; - /* 1 */ } + } .kuiTableRowCell--alignRight { text-align: right; } .kuiTableRowCell--alignRight .kuiTableRowCell__liner { text-align: right; } -/** - * 1. Rendered width of cell with checkbox inside of it. - * 2. Align checkbox with text in other cells. - * 3. Show the checkbox in Edge; otherwise it gets cropped. - */ .kuiTableHeaderCell--checkBox, .kuiTableRowCell--checkBox { width: 28px; - /* 1 */ - line-height: 1; - /* 2 */ } + line-height: 1; + } .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, .kuiTableRowCell--checkBox .kuiTableRowCell__liner { overflow: visible; - /* 3 */ } + } .kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner, .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, .kuiTableRowCell--checkBox .kuiTableHeaderCell__liner, @@ -2074,49 +1381,33 @@ main { line-height: 1.5; } .kuiTabs { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; border-bottom: 1px solid #D3DAE6; } -/** - * 1. Override button styles (some of which are from Bootstrap). - * 2. Adding a border shifts tabs right by 1px, so we need to shift them back. - * 3. Move the tab down so that its bottom border covers the container's bottom border. - * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more - * of padding to make sure the text doesn't shift down. - */ .kuiTab { -webkit-appearance: none; - -moz-appearance: none; appearance: none; - /* 1 */ - cursor: pointer; + cursor: pointer; padding: 10px 30px; font-size: 16px; color: #69707D; background-color: transparent; - /* 1 */ - border: 1px solid #D3DAE6; + border: 1px solid #D3DAE6; border-radius: 0; - /* 1 */ - margin-bottom: -1px; - /* 3 */ } + margin-bottom: -1px; + } .kuiTab + .kuiTab { border-left: none; } .kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { margin-left: -1px; - /* 2 */ } + } .kuiTab:active { outline: none !important; - /* 1 */ - -webkit-box-shadow: none; - box-shadow: none; - /* 1 */ } + box-shadow: none; + } .kuiTab:focus { outline: none; - /* 1 */ } + } .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { z-index: 1; color: #006BB4; @@ -2131,214 +1422,120 @@ main { border-bottom-color: transparent; } .kuiToolBar { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 50px; background-color: transparent; border: solid 1px #D3DAE6; } .kuiToolBar .kuiButton:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } .kuiToolBar .kuiButton--danger:not(a):enabled:focus { z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - /* 3 */ } + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus { - /* 1 */ - z-index: 1; - /* 1 */ - outline: none !important; - /* 2 */ - -webkit-box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; - /* 3 */ } + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } .kuiToolBar .kuiSelect { border-color: #fbfcfd; } .kuiToolBar .kuiSelect:not(a):enabled:focus { outline: none; border-color: #006BB4; } a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus { - /* 1 */ - outline: none; + outline: none; border-color: #006BB4; } .kuiToolBarSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiToolBarSection:first-child { margin-left: 0; } .kuiToolBarSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiToolBarSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiToolBarSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Override Bar styles and put Search on the left side. - */ .kuiToolBar--searchOnly .kuiToolBarSearch { margin-left: 0 !important; - /* 1 */ } + } .kuiToolBarFooter { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; + align-items: center; + justify-content: space-between; min-height: 30px; - /* 1 */ - padding: 10px; + padding: 10px; height: 40px; background-color: #FFF; } .kuiToolBarFooterSection { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + align-items: center; + flex: 1 1 auto; margin-left: 25px; margin-right: 25px; } .kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - /* 3 */ } + justify-content: center; + } .kuiToolBarFooterSection:first-child { margin-left: 0; } .kuiToolBarFooterSection:last-child { margin-right: 0; - -webkit-box-flex: 0; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - /* 4 */ - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - /* 5 */ } + flex: 0 1 auto; + justify-content: flex-end; + } .kuiToolBarFooterSection:only-child { margin-left: auto; - /* 2 */ } + } .kuiToolBarFooterSection > * + * { margin-left: 10px; - /* 1 */ } + } -/** - * 1. Put 10px of space between each child. - * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single - * kuiToolBarSection sibling. - */ .kuiToolBarSearch { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; margin-left: 25px; margin-right: 25px; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; max-width: 100%; - /* 2 */ - line-height: 1.5; } + line-height: 1.5; } .kuiToolBarSearch:first-child { margin-left: 0; } .kuiToolBarSearch:last-child { margin-right: 0; } .kuiToolBarSearch > * + * { margin-left: 10px; - /* 1 */ } + } .kuiToolBarSearchBox { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; position: relative; font-size: 16px; max-width: 800px; } @@ -2348,88 +1545,57 @@ main { top: 0.5em; left: 0.7em; font-size: 1em; - color: #ACACAC; } + color: #acacac; } -/** - * 1. Fix inherited styles (possibly from Bootstrap). - */ .kuiToolBarSearchBox__input { width: 100%; min-width: 200px; padding: 4px 12px 5px 28px; - font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - /* 1 */ - background-color: #FFF; + font-family: "var(--font-text)"; + background-color: #FFF; color: #343741; border-radius: 4px; font-size: 1em; border: 1px solid #D3DAE6; line-height: normal; - /* 1 */ - -webkit-transition: border-color 0.1s linear; - transition: border-color 0.1s linear; } + transition: border-color 0.1s linear; } .kuiToolBarSearchBox__input:focus { outline: none; border-color: #006BB4; } -/* - * 1. We don't want the text to take up two lines and overflow the ToolBar. - */ .kuiToolBarText { font-size: 16px; line-height: 1.5; color: #69707D; white-space: nowrap; - /* 1 */ } + } -/** - * 1. Override h1. - */ .kuiTitle { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - font-size: 24px; } + font-weight: 400; + font-size: 24px; } -/** - * 1. Override h2, h3, etc. - */ .kuiSubTitle { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - font-size: 20px; } + font-weight: 400; + font-size: 20px; } -/** - * 1. Override p. - */ .kuiTextTitle { margin: 0; - /* 1 */ - font-weight: 700; - /* 1 */ - line-height: 1.5; + font-weight: 700; + line-height: 1.5; font-size: 16px; } -/** - * 1. Override p. - */ .kuiText { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - line-height: 1.5; + font-weight: 400; + line-height: 1.5; font-size: 16px; } .kuiSubText { margin: 0; - /* 1 */ - font-weight: 400; - /* 1 */ - line-height: 1.5; + font-weight: 400; + line-height: 1.5; font-size: 14px; } .kuiSubduedText { @@ -2448,11 +1614,8 @@ main { margin-top: 32px; } .kuiView { - background-color: #FFF; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; } + background-color: #fff; + flex: 1 1 auto; } .kuiViewContent { padding-top: 20px; diff --git a/packages/osd-ui-framework/dist/kui_next_dark.css b/packages/osd-ui-framework/dist/kui_next_dark.css new file mode 100644 index 000000000000..079e91b9d667 --- /dev/null +++ b/packages/osd-ui-framework/dist/kui_next_dark.css @@ -0,0 +1,1633 @@ +/*! + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +main { + display: block; + } + +.kuiBar { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + } + +.kuiBarSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiBarSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiBarSection:first-child { + margin-left: 0; } + .kuiBarSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiBarSection:only-child { + margin-left: auto; + } + .kuiBarSection > * + * { + margin-left: 10px; + } + +.kuiButton { + display: inline-block; + -webkit-appearance: none; + appearance: none; + cursor: pointer; + padding: 4px 12px 5px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + height: 30px; + text-decoration: none; + border: none; + border-radius: 4px; } + .kuiButton:disabled { + cursor: not-allowed; + opacity: 0.5; } + a.kuiButton.kuiButton-isDisabled { + cursor: not-allowed; + opacity: 0.5; } + .kuiButton:enabled:active { + -webkit-transform: translateY(1px); + transform: translateY(1px); } + a.kuiButton:not(.kuiButton-isDisabled):active { + -webkit-transform: translateY(1px); + transform: translateY(1px); } + +.kuiButton__inner { + display: flex; + align-items: center; + } + +.kuiButton--small { + font-size: 12px; + padding: 2px 8px 3px; + height: 22px; } + +.kuiButton--fullWidth { + width: 100%; + text-align: center; } + +.kuiButton--iconText .kuiButton__icon:first-child:not(:only-child) { + margin-right: 8px; } + +.kuiButton--iconText .kuiButton__icon:last-child:not(:only-child) { + margin-left: 8px; } + +.kuiButton--iconText.kuiButton--small .kuiButton__icon:first-child:not(:only-child) { + margin-right: 4px; } + +.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) { + margin-left: 4px; } + +.kuiButton--basic { + color: #DFE5EF; + background-color: #101B25; } + .kuiButton--basic:not(a):enabled:focus { + color: #DFE5EF; } + a.kuiButton--basic:not(.kuiButton-isDisabled):focus { + color: #DFE5EF; } + .kuiButton--basic:enabled:hover { + background-color: #010101 !important; + } + a.kuiButton--basic:not(.kuiButton-isDisabled):hover { + background-color: #010101 !important; + } + .kuiButton--basic:enabled:active { + background-color: #010101 !important; + } + a.kuiButton--basic:not(.kuiButton-isDisabled):active { + background-color: #010101 !important; + } + +.kuiButton--primary { + color: #FCFEFF; + background-color: #159D8D; } + .kuiButton--primary:not(a):enabled:focus { + color: #FCFEFF; } + a.kuiButton--primary:not(.kuiButton-isDisabled):focus { + color: #FCFEFF; } + .kuiButton--primary:enabled:hover { + color: #FCFEFF !important; + background-color: #0f7065; } + a.kuiButton--primary:not(.kuiButton-isDisabled):hover { + color: #FCFEFF !important; + background-color: #0f7065; } + .kuiButton--primary:enabled:active { + color: #FCFEFF !important; + background-color: #0f7065; } + a.kuiButton--primary:not(.kuiButton-isDisabled):active { + color: #FCFEFF !important; + background-color: #0f7065; } + +.kuiButton--success { + color: #FCFEFF; + background-color: #7DE2D1; } + .kuiButton--success:not(a):enabled:focus { + color: #FCFEFF; } + a.kuiButton--success:not(.kuiButton-isDisabled):focus { + color: #FCFEFF; } + .kuiButton--success:enabled:hover { + color: #FCFEFF !important; + background-color: #53d9c2; } + a.kuiButton--success:not(.kuiButton-isDisabled):hover { + color: #FCFEFF !important; + background-color: #53d9c2; } + .kuiButton--success:enabled:active { + color: #FCFEFF !important; + background-color: #53d9c2; } + a.kuiButton--success:not(.kuiButton-isDisabled):active { + color: #FCFEFF !important; + background-color: #53d9c2; } + +.kuiButton--danger { + color: #F66; + border: solid 1px #F66; } + .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66; + color: #F66; } + a.kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66; + color: #F66; } + .kuiButton--danger:enabled:hover { + color: #ff3333 !important; + border: solid 1px #ff3333; + background-color: rgba(255, 102, 102, 0.1); } + a.kuiButton--danger:not(.kuiButton-isDisabled):hover { + color: #ff3333 !important; + border: solid 1px #ff3333; + background-color: rgba(255, 102, 102, 0.1); } + .kuiButton--danger:enabled:active { + color: #ff3333 !important; + border: solid 1px #ff3333; + background-color: rgba(255, 102, 102, 0.1); } + a.kuiButton--danger:not(.kuiButton-isDisabled):active { + color: #ff3333 !important; + border: solid 1px #ff3333; + background-color: rgba(255, 102, 102, 0.1); } + +.kuiButton--warning { + color: #FCFEFF; + background-color: #FFCE7A; } + .kuiButton--warning:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A; + color: #FCFEFF; } + a.kuiButton--warning:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A; + color: #FCFEFF; } + .kuiButton--warning:enabled:hover { + color: #FCFEFF !important; + background-color: #ffbb47; } + a.kuiButton--warning:not(.kuiButton-isDisabled):hover { + color: #FCFEFF !important; + background-color: #ffbb47; } + .kuiButton--warning:enabled:active { + color: #FCFEFF !important; + background-color: #ffbb47; } + a.kuiButton--warning:not(.kuiButton-isDisabled):active { + color: #FCFEFF !important; + background-color: #ffbb47; } + .kuiButton--warning:disabled { + background-color: #ffe1ad; } + a.kuiButton--warning.kuiButton-isDisabled { + background-color: #ffe1ad; } + +.kuiButton--hollow { + color: #159D8D !important; + background-color: transparent; } + .kuiButton--hollow:enabled:hover { + color: #0f7065 !important; + text-decoration: underline; } + a.kuiButton--hollow:not(.kuiButton-isDisabled):hover { + color: #0f7065 !important; + text-decoration: underline; } + .kuiButton--hollow:enabled:active { + color: #0f7065 !important; + text-decoration: underline; } + a.kuiButton--hollow:not(.kuiButton-isDisabled):active { + color: #0f7065 !important; + text-decoration: underline; } + +.kuiButton--secondary { + color: #159D8D !important; + border: solid 1px #159D8D; } + .kuiButton--secondary:enabled:hover { + color: #0f7065 !important; + border: solid 1px #0f7065; + background-color: rgba(21, 157, 141, 0.1); + text-decoration: underline; } + a.kuiButton--secondary:not(.kuiButton-isDisabled):hover { + color: #0f7065 !important; + border: solid 1px #0f7065; + background-color: rgba(21, 157, 141, 0.1); + text-decoration: underline; } + .kuiButton--secondary:enabled:active { + color: #0f7065 !important; + border: solid 1px #0f7065; + background-color: rgba(21, 157, 141, 0.1); + text-decoration: underline; } + a.kuiButton--secondary:not(.kuiButton-isDisabled):active { + color: #0f7065 !important; + border: solid 1px #0f7065; + background-color: rgba(21, 157, 141, 0.1); + text-decoration: underline; } + +.kuiButtonGroup { + display: flex; + align-items: center; } + .kuiButtonGroup .kuiButton + .kuiButton { + margin-left: 4px; } + +.kuiButtonGroup--united > .kuiButton:not(:first-child):not(:last-child) { + border-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:only-child { + border-radius: 4px 4px 4px 4px; } + +.kuiButtonGroup--united .kuiButton + .kuiButton { + margin-left: 0; } + +.kuiButtonGroup--fullWidth { + display: flex; } + .kuiButtonGroup--fullWidth > .kuiButton { + flex: 1 1 auto; + text-align: center; } + +.eui-textCenter > .kuiButtonGroup, +.text-center > .kuiButtonGroup { + display: inline-block; } + +.kuiCollapseButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + padding: 4px; + border: none; + line-height: 1; + font-size: 16px; + color: #DFE5EF !important; + cursor: pointer; + opacity: 0.35; } + .kuiCollapseButton:hover { + opacity: 1; } + +.kuiAssistedInput { + display: inline-block; + position: relative; } + +.kuiAssistedInput__assistance { + position: absolute; + right: 12px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } + +.kuiCheckBox { + -webkit-appearance: none; + appearance: none; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + width: 16px; + height: 16px; + font: "var(--font-text)" !important; + line-height: 1.5 !important; + margin: 0 !important; + font-family: "var(--font-text)" !important; + font-size: 10px !important; + transition: background-color 0.1s linear; } + .kuiCheckBox::before { + position: relative; + left: 0.25em; + font-family: FontAwesome, sans-serif; + content: "\F00C"; + font-size: 1em; + opacity: 0; + color: #FCFEFF; + transition: opacity 0.1s linear; } + .kuiCheckBox:checked { + border-color: #159D8D; + background-color: #159D8D; } + .kuiCheckBox:checked::before { + opacity: 1; } + .kuiCheckBox:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #159D8D; + } + .kuiCheckBox:disabled { + background-color: #0d161e !important; + border-color: #0d161e !important; + cursor: not-allowed !important; } + +.kuiCheckBoxLabel { + display: flex; + align-items: center; + font-weight: normal !important; + line-height: 1.5; } + +.kuiCheckBoxLabel__text { + font-size: 16px; + margin-left: 8px; } + +.kuiLabel { + font-size: 16px; + line-height: 1.5; + font-weight: bold; + margin-bottom: 0; + } + +.kuiSearchInput { + width: 180px; + display: inline-block; + position: relative; + font-size: 16px; + line-height: 1.5; } + .kuiSearchInput.kuiSearchInput-isInvalid .kuiSearchInput__input { + border-color: #F66; } + +.kuiSearchInput__icon { + position: absolute; + top: 0.5em; + left: 0.7em; + font-size: 1em; + color: #5B6875; } + +.kuiSearchInput__input { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-left: 28px; + width: 100%; + } + .kuiSearchInput__input:invalid { + border-color: #F66; } + .kuiSearchInput__input:focus { + outline: none; + border-color: #159D8D; } + .kuiSearchInput__input:disabled { + opacity: 0.4; + cursor: not-allowed; } + +.kuiSearchInput--small { + width: 60px; } + +.kuiSearchInput--large { + width: 400px; } + +.kuiSelect { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; + background-repeat: no-repeat; + background-position: calc(100% - 8px); + } + .kuiSelect:invalid { + border-color: #F66; } + .kuiSelect:focus { + outline: none; + border-color: #159D8D; } + .kuiSelect:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiSelect:-moz-focusring { + text-shadow: 0 0 0; + } + .kuiSelect.kuiSelect-isInvalid { + border-color: #F66; } + .kuiSelect:focus { + box-shadow: none; + outline: none; + border-color: #159D8D; } + +.kuiSelect--small { + width: 60px; } + +.kuiSelect--medium { + width: 180px; } + +.kuiSelect--large { + width: 400px; } + +.kuiStaticInput { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + border: 1px solid transparent; + background-color: transparent; } + +.kuiTextArea { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + } + .kuiTextArea:invalid { + border-color: #F66; } + .kuiTextArea:focus { + outline: none; + border-color: #159D8D; } + .kuiTextArea:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiTextArea:focus { + box-shadow: none; + outline: none; + border-color: #159D8D; } + .kuiTextArea.kuiTextArea-isInvalid { + border-color: #F66; } + +.kuiTextArea--nonResizable { + resize: none; } + +.kuiTextArea--small { + width: 60px; } + +.kuiTextArea--large { + width: 400px; } + +.kuiTextInput { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + } + .kuiTextInput:invalid { + border-color: #F66; } + .kuiTextInput:focus { + outline: none; + border-color: #159D8D; } + .kuiTextInput:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiTextInput.kuiTextInput-isInvalid { + border-color: #F66; } + +.kuiTextInput--small { + width: 60px; } + +.kuiTextInput--large { + width: 400px; } + +.kuiFieldGroup { + display: flex; + align-items: center; + } + +.kuiFieldGroup--alignTop { + align-items: flex-start; } + +.kuiFieldGroupSection { + line-height: 1.5; } + .kuiFieldGroupSection + .kuiFieldGroupSection { + margin-left: 10px; } + +.kuiFieldGroupSection--wide { + flex: 1 1 auto; } + .kuiFieldGroupSection--wide > * { + width: 100%; } + +.kuiIcon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome, sans-serif; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + +.kuiIcon--info { + color: #159D8D; } + +.kuiIcon--success { + color: #7DE2D1; } + +.kuiIcon--warning { + color: #FFCE7A; } + +.kuiIcon--error { + color: #F66; } + +.kuiIcon--inactive { + color: #293847; } + +.kuiIcon--basic { + color: #8D98A3; } + +.kuiInfoPanel { + padding: 14px 20px 18px; + line-height: 1.5; + border: 2px solid; } + +.kuiInfoPanel--info { + border-color: rgba(21, 157, 141, 0.25); + } + +.kuiInfoPanel--success { + border-color: rgba(125, 226, 209, 0.25); + } + +.kuiInfoPanel--warning { + border-color: rgba(255, 206, 122, 0.25); + } + +.kuiInfoPanel--error { + border-color: rgba(255, 102, 102, 0.25); + } + +.kuiInfoPanelHeader { + display: flex; + align-items: baseline; + } + +.kuiInfoPanelHeader__icon { + margin-right: 10px; + font-size: 16px; + line-height: 1.5; } + +.kuiInfoPanelHeader__title { + font-size: 16px; + line-height: 1.5; + font-weight: 700; } + +.kuiInfoPanelBody { + margin-top: 8px; } + .kuiInfoPanelBody > * + * { + margin-top: 8px; } + +.kuiInfoPanelBody__message { + font-size: 16px; + line-height: 1.5; } + +.kuiLink { + color: #159D8D; + text-decoration: none; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + } + .kuiLink:visited, .kuiLink:active { + color: #159D8D; } + .kuiLink:hover { + color: #0f7065; + text-decoration: underline; } + +.kuiLocalBreadcrumbs { + display: flex; + align-items: center; + padding: 12px 8px; + border-bottom: 1px solid #293847; + flex-grow: 1; + flex-basis: 100%; + background-color: #0A121A; } + +.kuiLocalBreadcrumb { + font-size: 14px; + margin: 0; + font-weight: normal; } + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb { + margin-left: 6px; } + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before { + content: "/"; + -webkit-user-select: none; + user-select: none; + margin-right: 4px; + color: #293847; } + +.kuiLocalBreadcrumb__link { + color: #159D8D; + text-decoration: none; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + color: #159D8D; + font-size: 16px; } + .kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active { + color: #159D8D; } + .kuiLocalBreadcrumb__link:hover { + color: #0f7065; + text-decoration: underline; } + +.kuiLocalBreadcrumb__emphasis { + font-weight: 700; } + +.kuiDatePicker { + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; + line-height: 1.5; } + +.kuiDatePickerNavigationCell { + padding: 0; } + +.kuiDatePickerNavigation { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 4px; } + +.kuiDatePickerNavigationButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: 14px; + color: #DFE5EF; + padding: 3px 6px; + border-radius: 4px; } + .kuiDatePickerNavigationButton:hover, .kuiDatePickerNavigationButton:active { + cursor: pointer; + color: #101B25; + background-color: #159D8D; } + .kuiDatePickerNavigationButton:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D; + color: #DFE5EF; + } + +.kuiDatePickerHeaderCell { + padding: 9px 0; + color: #DFE5EF; + font-size: 14px; + font-weight: bold; + text-align: center; + line-height: 1.2; } + +.kuiDatePickerRowCell { + padding: 0; + text-align: center; + } + .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked { + cursor: not-allowed; } + .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent { + pointer-events: none; } + +.kuiDatePickerRowCellContent { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + width: 100%; + border: 1px solid transparent; + color: #DFE5EF; + font-size: 14px; + padding: 8px; + border-radius: 4px; + line-height: 1.2; } + .kuiDatePickerRowCellContent:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D; + color: #DFE5EF; + } + .kuiDatePickerRowCellContent:disabled { + pointer-events: none; + opacity: 0.5; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isOtherMonth { + visibility: hidden; + pointer-events: none; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isCurrent { + color: #159D8D; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isSelected { + background-color: #8D98A3; + color: #DFE5EF; } + .kuiDatePickerRowCellContent:hover, .kuiDatePickerRowCellContent:active { + cursor: pointer; + color: #101B25; + background-color: #159D8D; } + +.kuiLocalDropdown { + position: relative; + padding: 10px 8px 14px; + background-color: transparent; + margin-bottom: 10px; + line-height: 20px; } + +.kuiLocalDropdownCloseButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + padding: 4px; + border: none; + line-height: 1; + font-size: 16px; + color: #DFE5EF !important; + cursor: pointer; + opacity: 0.35; + position: absolute; + top: 1px; + right: 5px; } + .kuiLocalDropdownCloseButton:hover { + opacity: 1; } + +.kuiLocalDropdownPanels { + display: flex; } + +.kuiLocalDropdownPanel { + flex: 1 1 0%; } + +.kuiLocalDropdownPanel--left { + margin-right: 30px; } + +.kuiLocalDropdownPanel--right { + margin-left: 30px; } + +.kuiLocalDropdownTitle { + margin-top: 0; + margin-bottom: 12px; + font-size: 18px; + color: #DFE5EF; } + +.kuiLocalDropdownSection { + margin-bottom: 16px; } + .kuiLocalDropdownSection:last-child { + margin-bottom: 0; } + +.kuiLocalDropdownHeader { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 6px; } + +.kuiLocalDropdownHeader__label { + font-size: 14px; + font-weight: 700; + margin-bottom: 0; + color: #DFE5EF; } + +.kuiLocalDropdownHeader__actions { + display: flex; } + +.kuiLocalDropdownHeader__action { + color: #159D8D; + font-size: 12px; + text-decoration: none; + cursor: pointer; } + .kuiLocalDropdownHeader__action + .kuiLocalDropdownHeader__action { + margin-left: 10px; } + .kuiLocalDropdownHeader__action:hover, .kuiLocalDropdownHeader__action:active { + color: #0f7065; } + +.kuiLocalDropdownInput { + display: block; + width: 100%; + margin-bottom: 12px; + padding: 5px 15px; + font-size: 14px; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; } + .kuiLocalDropdownInput:focus { + border-color: #159D8D; } + +.kuiLocalDropdownFormNote { + font-size: 14px; + color: #8D98A3; } + +.kuiLocalDropdownWarning { + margin-bottom: 16px; + padding: 6px 10px; + font-size: 14px; + color: #DFE5EF; + background-color: #0A121A; + border-left: solid 2px #F66; } + +.kuiLocalDropdownHelpText { + margin-bottom: 16px; + font-size: 14px; + color: #8D98A3; } + +.kuiLocalMenu { + display: flex; + align-items: stretch; + padding-top: 8px; + padding-bottom: 8px; } + +.kuiLocalMenuItem { + display: flex; + align-items: center; + padding: 2px 8px; + font-size: 16px; + background-color: transparent; + color: #DFE5EF; + border: 0; + cursor: pointer; + border-bottom: solid 2px transparent; } + .kuiLocalMenuItem:hover, .kuiLocalMenuItem:focus { + background-color: rgba(21, 157, 141, 0.15); + text-decoration: underline; } + .kuiLocalMenuItem.kuiLocalMenuItem-isSelected { + color: #159D8D; + background-color: transparent; + border-color: #159D8D; + z-index: 2; } + .kuiLocalMenuItem.kuiLocalMenuItem-isSelected:hover, .kuiLocalMenuItem.kuiLocalMenuItem-isSelected:focus { + text-decoration: none; } + .kuiLocalMenuItem.kuiLocalMenuItem-isDisabled { + opacity: 0.5; + cursor: not-allowed; } + .kuiLocalMenuItem.kuiLocalMenuItem-isDisabled:hover { + background-color: transparent; + text-decoration: none; } + +.kuiLocalMenuItem__icon { + margin-right: 5px; + margin-bottom: -1px; } + +.kuiLocalNav { + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: 69px; + color: #DFE5EF; + background-color: #0A121A; + line-height: 1.5; + border-bottom: solid 1px #293847; } + +.kuiLocalNavRow { + display: flex; + align-items: stretch; + justify-content: space-between; } + +.kuiLocalNavRow__section { + display: flex; + align-items: stretch; } + +.kuiLocalNavRow--secondary { + padding: 0 8px; + align-items: flex-start; + } + +.kuiLocalSearch { + display: flex; + width: 100%; + margin-bottom: 8px; } + +.kuiLocalSearchInput { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + flex: 1 1 100%; + border-color: #FCFEFF; + border-color: #293847; + border-radius: 4px 0 0 4px; } + .kuiLocalSearchInput:invalid { + border-color: #F66; } + .kuiLocalSearchInput:focus { + outline: none; + border-color: #159D8D; } + .kuiLocalSearchInput:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiLocalSearchInput:focus { + box-shadow: none; } + .kuiLocalSearchInput.kuiLocalSearchInput-isInvalid { + border-color: #F66; } + +.kuiLocalSearchInput--secondary { + height: 32px; + flex: 0 0 auto; + border-radius: 0; + border-left-width: 0; } + +.kuiLocalSearchInput, +.kuiLocalSearchAssistedInput__input { + padding-right: 6em; + } + +.kuiLocalSearchAssistedInput__assistance { + position: absolute; + right: 6px; + top: 50%; + z-index: 2; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } + +.kuiLocalSearchSelect { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #DFE5EF; + background-color: #0e1721; + border: 1px solid rgba(252, 254, 255, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; + background-repeat: no-repeat; + background-position: calc(100% - 8px); + border-left-width: 0; + border-radius: 0; } + .kuiLocalSearchSelect:invalid { + border-color: #F66; } + .kuiLocalSearchSelect:focus { + outline: none; + border-color: #159D8D; } + .kuiLocalSearchSelect:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiLocalSearchSelect:-moz-focusring { + text-shadow: 0 0 0; + } + +.kuiLocalSearchButton { + width: 43px; + height: 32px; + font-size: 16px; + line-height: 0; + color: #FCFEFF; + background-color: #159D8D; + border: 0; + border-radius: 0 4px 4px 0; } + .kuiLocalSearchButton:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D; + } + +.kuiLocalTabs { + display: flex; + align-items: flex-end; + height: 100%; } + +.kuiLocalTab { + padding: 5px 0 6px; + font-size: 18px; + color: #DFE3E8; + border-bottom: 2px solid transparent; + text-decoration: none; + cursor: pointer; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) { + color: #159D8D; } + .kuiLocalTab.kuiLocalTab-isSelected { + color: #159D8D; + border-bottom-color: #159D8D; + cursor: default; } + .kuiLocalTab.kuiLocalTab-isDisabled { + opacity: 0.5; + cursor: default; + } + .kuiLocalTab + .kuiLocalTab { + margin-left: 15px; } + +.kuiLocalTitle { + display: flex; + align-items: center; + padding: 12px 8px; + font-size: 16px; + font-weight: bold; + border-bottom: 1px solid #293847; + flex-grow: 1; + flex-basis: 100%; + background-color: #0A121A; } + .kuiLocalTitle:empty { + padding: 0; + display: none; } + +.kuiPager { + display: flex; + align-items: center; } + .kuiPager > * + * { + margin-left: 10px; + } + +.kuiPagerText { + font-size: 16px; + line-height: 1.5; + color: #8D98A3; + white-space: nowrap; + } + +.kuiPanel { + box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3); + background-color: #0A121A; + border: 1px solid #293847; + border-radius: 4px; } + +.kuiPanel--prompt { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + justify-content: center; + min-height: 300px; } + .kuiPanel--prompt .kuiPanelBody { + padding: 30px; + max-width: 500px; } + +.kuiPanel--noBorder { + border: none; } + +.kuiPanel--withToolBar { + border-top: none; + border-radius: 0; } + +.kuiPanel--centered { + display: flex; + justify-content: center; + align-items: center; } + +.kuiPanelHeader { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 50px; + border-bottom: 1px solid #293847; } + .kuiPanelHeader .kuiButton:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D; + } + a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D; + } + .kuiPanelHeader .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66; + } + a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66; + } + .kuiPanelHeader .kuiSelect { + border-color: #0e1721; } + .kuiPanelHeader .kuiSelect:not(a):enabled:focus { + outline: none; + border-color: #159D8D; } + a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus { + outline: none; + border-color: #159D8D; } + +.kuiPanelHeader__title { + font-size: 20px; + line-height: 1.5; + margin: 0; + } + +.kuiPanelHeaderSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiPanelHeaderSection:first-child { + margin-left: 0; } + .kuiPanelHeaderSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiPanelHeaderSection:only-child { + margin-left: auto; + } + .kuiPanelHeaderSection > * + * { + margin-left: 10px; + } + .kuiPanelHeaderSection:only-child { + margin-left: 0; + margin-right: auto; + } + +.kuiPanelBody { + padding: 10px; } + +.kuiEmptyTablePrompt { + display: flex; + flex-direction: column; + align-items: center; + padding: 30px; } + +.kuiEmptyTablePrompt__message { + font-size: 20px; + color: #8D98A3; + line-height: 1.5; } + +.kuiEmptyTablePrompt__actions { + margin-top: 10px; } + +.kuiStatusText { + display: inline-flex; + align-items: baseline; } + +.kuiStatusText--info { + color: #159D8D; } + +.kuiStatusText--success { + color: #7DE2D1; } + +.kuiStatusText--warning { + color: #FFCE7A; } + +.kuiStatusText--error { + color: #F66; } + +.kuiStatusText__icon { + margin-right: 6px; + width: 1.15em; + max-height: 1.15em; + } + +.kuiControlledTable { + background: #0A121A; } + .kuiControlledTable .kuiTable { + border-top: none; + } + .kuiControlledTable .kuiToolBarFooter { + border-top: none; + } + .kuiControlledTable .kuiMenu--contained { + border-top: none; + } + +.kuiTable { + width: 100%; + border: 1px solid #293847; + border-collapse: collapse; + background-color: #0A121A; } + +.kuiTable--fluid { + width: auto; + } + .kuiTable--fluid .kuiTableHeaderCell, + .kuiTable--fluid .kuiTableRowCell { + max-width: none; + } + +.kuiTableHeaderCell { + font-size: 16px; + font-weight: 400; + text-align: left; + max-width: 20px; + line-height: 1.5; + color: #8D98A3; } + +.kuiTableHeaderCell__liner { + display: inline-block; + padding: 7px 8px 8px; } + +.kuiTableHeaderCellButton { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + width: 100%; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: 0; + padding: 0; + color: inherit; + line-height: inherit; + font-size: inherit; + text-align: inherit; + } + .kuiTableHeaderCellButton:hover .kuiTableSortIcon { + display: block; + opacity: 1; } + .kuiTableHeaderCellButton .kuiTableHeaderCell__liner { + display: flex; + align-items: center; } + +.kuiTableHeaderCell--alignRight { + text-align: right; } + +.kuiTableSortIcon { + display: none; + pointer-events: none; + margin-left: 4px; } + .kuiTableHeaderCellButton-isSorted .kuiTableSortIcon { + display: block; + opacity: 0.4; } + +.kuiTableRow:hover .kuiTableRowHoverReveal { + display: inline-block; } + +.kuiTableRowHoverReveal { + display: none; } + +.kuiTableRowCell { + font-size: 16px; + font-weight: 400; + text-align: left; + max-width: 20px; + color: #DFE5EF; + border-top: 1px solid #293847; + vertical-align: middle; } + +.kuiTableRowCell__liner { + padding: 7px 8px 8px; + line-height: 1.5; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .kuiTableRowCell__liner > * { + vertical-align: middle; + } + +.kuiTableRowCell--wrap .kuiTableRowCell__liner { + white-space: normal; } + +.kuiTableRowCell--overflowingContent .kuiTableRowCell__liner { + overflow: visible; + white-space: normal; } + +.kuiTableRowCell--expanded { + border-top-color: #0A121A; + } + +.kuiTableRowCell--alignRight { + text-align: right; } + .kuiTableRowCell--alignRight .kuiTableRowCell__liner { + text-align: right; } + +.kuiTableHeaderCell--checkBox, +.kuiTableRowCell--checkBox { + width: 28px; + line-height: 1; + } + .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, + .kuiTableRowCell--checkBox .kuiTableRowCell__liner { + overflow: visible; + } + .kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner, + .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, + .kuiTableRowCell--checkBox .kuiTableHeaderCell__liner, + .kuiTableRowCell--checkBox .kuiTableRowCell__liner { + padding-right: 0; } + +.kuiTableInfo { + padding: 30px; + font-size: 20px; + color: #8D98A3; + line-height: 1.5; } + +.kuiTabs { + display: flex; + border-bottom: 1px solid #293847; } + +.kuiTab { + -webkit-appearance: none; + appearance: none; + cursor: pointer; + padding: 10px 30px; + font-size: 16px; + color: #8D98A3; + background-color: transparent; + border: 1px solid #293847; + border-radius: 0; + margin-bottom: -1px; + } + .kuiTab + .kuiTab { + border-left: none; } + .kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { + margin-left: -1px; + } + .kuiTab:active { + outline: none !important; + box-shadow: none; + } + .kuiTab:focus { + outline: none; + } + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { + z-index: 1; + color: #159D8D; + border: 1px solid #159D8D !important; } + .kuiTab:hover:not(.kuiTab-isSelected) { + color: #0f7065; + background-color: #101B25; } + .kuiTab.kuiTab-isSelected { + cursor: default; + color: #DFE5EF; + background-color: transparent; + border-bottom-color: transparent; } + +.kuiToolBar { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 50px; + background-color: transparent; + border: solid 1px #293847; } + .kuiToolBar .kuiButton:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D; + } + a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D; + } + .kuiToolBar .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66; + } + a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66; + } + .kuiToolBar .kuiSelect { + border-color: #0e1721; } + .kuiToolBar .kuiSelect:not(a):enabled:focus { + outline: none; + border-color: #159D8D; } + a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus { + outline: none; + border-color: #159D8D; } + +.kuiToolBarSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiToolBarSection:first-child { + margin-left: 0; } + .kuiToolBarSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiToolBarSection:only-child { + margin-left: auto; + } + .kuiToolBarSection > * + * { + margin-left: 10px; + } + +.kuiToolBar--searchOnly .kuiToolBarSearch { + margin-left: 0 !important; + } + +.kuiToolBarFooter { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 40px; + background-color: #0A121A; } + +.kuiToolBarFooterSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiToolBarFooterSection:first-child { + margin-left: 0; } + .kuiToolBarFooterSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiToolBarFooterSection:only-child { + margin-left: auto; + } + .kuiToolBarFooterSection > * + * { + margin-left: 10px; + } + +.kuiToolBarSearch { + display: flex; + align-items: center; + margin-left: 25px; + margin-right: 25px; + flex: 1 1 auto; + max-width: 100%; + line-height: 1.5; } + .kuiToolBarSearch:first-child { + margin-left: 0; } + .kuiToolBarSearch:last-child { + margin-right: 0; } + .kuiToolBarSearch > * + * { + margin-left: 10px; + } + +.kuiToolBarSearchBox { + flex: 1 1 auto; + position: relative; + font-size: 16px; + max-width: 800px; } + +.kuiToolBarSearchBox__icon { + position: absolute; + top: 0.5em; + left: 0.7em; + font-size: 1em; + color: #acacac; } + +.kuiToolBarSearchBox__input { + width: 100%; + min-width: 200px; + padding: 4px 12px 5px 28px; + font-family: "var(--font-text)"; + background-color: #0A121A; + color: #DFE5EF; + border-radius: 4px; + font-size: 1em; + border: 1px solid #293847; + line-height: normal; + transition: border-color 0.1s linear; } + .kuiToolBarSearchBox__input:focus { + outline: none; + border-color: #159D8D; } + +.kuiToolBarText { + font-size: 16px; + line-height: 1.5; + color: #8D98A3; + white-space: nowrap; + } + +.kuiTitle { + margin: 0; + font-weight: 400; + font-size: 24px; } + +.kuiSubTitle { + margin: 0; + font-weight: 400; + font-size: 20px; } + +.kuiTextTitle { + margin: 0; + font-weight: 700; + line-height: 1.5; + font-size: 16px; } + +.kuiText { + margin: 0; + font-weight: 400; + line-height: 1.5; + font-size: 16px; } + +.kuiSubText { + margin: 0; + font-weight: 400; + line-height: 1.5; + font-size: 14px; } + +.kuiSubduedText { + color: #8D98A3 !important; } + +.kuiVerticalRhythm + .kuiVerticalRhythm { + margin-top: 16px; } + +.kuiVerticalRhythmSmall + .kuiVerticalRhythmSmall { + margin-top: 8px; } + +.kuiVerticalRhythmLarge + .kuiVerticalRhythmLarge { + margin-top: 24px; } + +.kuiVerticalRhythmXLarge + .kuiVerticalRhythmXLarge { + margin-top: 32px; } + +.kuiView { + background-color: #fff; + flex: 1 1 auto; } + +.kuiViewContent { + padding-top: 20px; + padding-bottom: 20px; + width: 100%; } + +.kuiViewContent--constrainedWidth { + width: 100%; + max-width: 1100px; + margin-left: auto; + margin-right: auto; } + +.kuiViewContentItem { + padding-left: 20px; + padding-right: 20px; } diff --git a/packages/osd-ui-framework/dist/kui_next_light.css b/packages/osd-ui-framework/dist/kui_next_light.css new file mode 100644 index 000000000000..e5f63568add5 --- /dev/null +++ b/packages/osd-ui-framework/dist/kui_next_light.css @@ -0,0 +1,1633 @@ +/*! + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ + +main { + display: block; + } + +.kuiBar { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + } + +.kuiBarSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiBarSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiBarSection:first-child { + margin-left: 0; } + .kuiBarSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiBarSection:only-child { + margin-left: auto; + } + .kuiBarSection > * + * { + margin-left: 10px; + } + +.kuiButton { + display: inline-block; + -webkit-appearance: none; + appearance: none; + cursor: pointer; + padding: 4px 12px 5px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + height: 30px; + text-decoration: none; + border: none; + border-radius: 4px; } + .kuiButton:disabled { + cursor: not-allowed; + opacity: 0.5; } + a.kuiButton.kuiButton-isDisabled { + cursor: not-allowed; + opacity: 0.5; } + .kuiButton:enabled:active { + -webkit-transform: translateY(1px); + transform: translateY(1px); } + a.kuiButton:not(.kuiButton-isDisabled):active { + -webkit-transform: translateY(1px); + transform: translateY(1px); } + +.kuiButton__inner { + display: flex; + align-items: center; + } + +.kuiButton--small { + font-size: 12px; + padding: 2px 8px 3px; + height: 22px; } + +.kuiButton--fullWidth { + width: 100%; + text-align: center; } + +.kuiButton--iconText .kuiButton__icon:first-child:not(:only-child) { + margin-right: 8px; } + +.kuiButton--iconText .kuiButton__icon:last-child:not(:only-child) { + margin-left: 8px; } + +.kuiButton--iconText.kuiButton--small .kuiButton__icon:first-child:not(:only-child) { + margin-right: 4px; } + +.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) { + margin-left: 4px; } + +.kuiButton--basic { + color: #343741; + background-color: #F5F7FA; } + .kuiButton--basic:not(a):enabled:focus { + color: #343741; } + a.kuiButton--basic:not(.kuiButton-isDisabled):focus { + color: #343741; } + .kuiButton--basic:enabled:hover { + background-color: #d3dce9 !important; + } + a.kuiButton--basic:not(.kuiButton-isDisabled):hover { + background-color: #d3dce9 !important; + } + .kuiButton--basic:enabled:active { + background-color: #d3dce9 !important; + } + a.kuiButton--basic:not(.kuiButton-isDisabled):active { + background-color: #d3dce9 !important; + } + +.kuiButton--primary { + color: #FFF; + background-color: #006BB4; } + .kuiButton--primary:not(a):enabled:focus { + color: #FFF; } + a.kuiButton--primary:not(.kuiButton-isDisabled):focus { + color: #FFF; } + .kuiButton--primary:enabled:hover { + color: #FFF !important; + background-color: #004d81; } + a.kuiButton--primary:not(.kuiButton-isDisabled):hover { + color: #FFF !important; + background-color: #004d81; } + .kuiButton--primary:enabled:active { + color: #FFF !important; + background-color: #004d81; } + a.kuiButton--primary:not(.kuiButton-isDisabled):active { + color: #FFF !important; + background-color: #004d81; } + +.kuiButton--success { + color: #FFF; + background-color: #017D73; } + .kuiButton--success:not(a):enabled:focus { + color: #FFF; } + a.kuiButton--success:not(.kuiButton-isDisabled):focus { + color: #FFF; } + .kuiButton--success:enabled:hover { + color: #FFF !important; + background-color: #014a44; } + a.kuiButton--success:not(.kuiButton-isDisabled):hover { + color: #FFF !important; + background-color: #014a44; } + .kuiButton--success:enabled:active { + color: #FFF !important; + background-color: #014a44; } + a.kuiButton--success:not(.kuiButton-isDisabled):active { + color: #FFF !important; + background-color: #014a44; } + +.kuiButton--danger { + color: #BD271E; + border: solid 1px #BD271E; } + .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; + color: #BD271E; } + a.kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E; + color: #BD271E; } + .kuiButton--danger:enabled:hover { + color: #911e17 !important; + border: solid 1px #911e17; + background-color: rgba(189, 39, 30, 0.1); } + a.kuiButton--danger:not(.kuiButton-isDisabled):hover { + color: #911e17 !important; + border: solid 1px #911e17; + background-color: rgba(189, 39, 30, 0.1); } + .kuiButton--danger:enabled:active { + color: #911e17 !important; + border: solid 1px #911e17; + background-color: rgba(189, 39, 30, 0.1); } + a.kuiButton--danger:not(.kuiButton-isDisabled):active { + color: #911e17 !important; + border: solid 1px #911e17; + background-color: rgba(189, 39, 30, 0.1); } + +.kuiButton--warning { + color: #FFF; + background-color: #F5A700; } + .kuiButton--warning:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; + color: #FFF; } + a.kuiButton--warning:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700; + color: #FFF; } + .kuiButton--warning:enabled:hover { + color: #FFF !important; + background-color: #c28400; } + a.kuiButton--warning:not(.kuiButton-isDisabled):hover { + color: #FFF !important; + background-color: #c28400; } + .kuiButton--warning:enabled:active { + color: #FFF !important; + background-color: #c28400; } + a.kuiButton--warning:not(.kuiButton-isDisabled):active { + color: #FFF !important; + background-color: #c28400; } + .kuiButton--warning:disabled { + background-color: #ffbb29; } + a.kuiButton--warning.kuiButton-isDisabled { + background-color: #ffbb29; } + +.kuiButton--hollow { + color: #006BB4 !important; + background-color: transparent; } + .kuiButton--hollow:enabled:hover { + color: #004d81 !important; + text-decoration: underline; } + a.kuiButton--hollow:not(.kuiButton-isDisabled):hover { + color: #004d81 !important; + text-decoration: underline; } + .kuiButton--hollow:enabled:active { + color: #004d81 !important; + text-decoration: underline; } + a.kuiButton--hollow:not(.kuiButton-isDisabled):active { + color: #004d81 !important; + text-decoration: underline; } + +.kuiButton--secondary { + color: #006BB4 !important; + border: solid 1px #006BB4; } + .kuiButton--secondary:enabled:hover { + color: #004d81 !important; + border: solid 1px #004d81; + background-color: rgba(0, 107, 180, 0.1); + text-decoration: underline; } + a.kuiButton--secondary:not(.kuiButton-isDisabled):hover { + color: #004d81 !important; + border: solid 1px #004d81; + background-color: rgba(0, 107, 180, 0.1); + text-decoration: underline; } + .kuiButton--secondary:enabled:active { + color: #004d81 !important; + border: solid 1px #004d81; + background-color: rgba(0, 107, 180, 0.1); + text-decoration: underline; } + a.kuiButton--secondary:not(.kuiButton-isDisabled):active { + color: #004d81 !important; + border: solid 1px #004d81; + background-color: rgba(0, 107, 180, 0.1); + text-decoration: underline; } + +.kuiButtonGroup { + display: flex; + align-items: center; } + .kuiButtonGroup .kuiButton + .kuiButton { + margin-left: 4px; } + +.kuiButtonGroup--united > .kuiButton:not(:first-child):not(:last-child) { + border-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.kuiButtonGroup--united > .kuiButton:only-child { + border-radius: 4px 4px 4px 4px; } + +.kuiButtonGroup--united .kuiButton + .kuiButton { + margin-left: 0; } + +.kuiButtonGroup--fullWidth { + display: flex; } + .kuiButtonGroup--fullWidth > .kuiButton { + flex: 1 1 auto; + text-align: center; } + +.eui-textCenter > .kuiButtonGroup, +.text-center > .kuiButtonGroup { + display: inline-block; } + +.kuiCollapseButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + padding: 4px; + border: none; + line-height: 1; + font-size: 16px; + color: #343741 !important; + cursor: pointer; + opacity: 0.35; } + .kuiCollapseButton:hover { + opacity: 1; } + +.kuiAssistedInput { + display: inline-block; + position: relative; } + +.kuiAssistedInput__assistance { + position: absolute; + right: 12px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } + +.kuiCheckBox { + -webkit-appearance: none; + appearance: none; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + width: 16px; + height: 16px; + font: "var(--font-text)" !important; + line-height: 1.5 !important; + margin: 0 !important; + font-family: "var(--font-text)" !important; + font-size: 10px !important; + transition: background-color 0.1s linear; } + .kuiCheckBox::before { + position: relative; + left: 0.25em; + font-family: FontAwesome, sans-serif; + content: "\F00C"; + font-size: 1em; + opacity: 0; + color: #FFF; + transition: opacity 0.1s linear; } + .kuiCheckBox:checked { + border-color: #006BB4; + background-color: #006BB4; } + .kuiCheckBox:checked::before { + opacity: 1; } + .kuiCheckBox:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4; + } + .kuiCheckBox:disabled { + background-color: #eef2f7 !important; + border-color: #eef2f7 !important; + cursor: not-allowed !important; } + +.kuiCheckBoxLabel { + display: flex; + align-items: center; + font-weight: normal !important; + line-height: 1.5; } + +.kuiCheckBoxLabel__text { + font-size: 16px; + margin-left: 8px; } + +.kuiLabel { + font-size: 16px; + line-height: 1.5; + font-weight: bold; + margin-bottom: 0; + } + +.kuiSearchInput { + width: 180px; + display: inline-block; + position: relative; + font-size: 16px; + line-height: 1.5; } + .kuiSearchInput.kuiSearchInput-isInvalid .kuiSearchInput__input { + border-color: #BD271E; } + +.kuiSearchInput__icon { + position: absolute; + top: 0.5em; + left: 0.7em; + font-size: 1em; + color: #98A2B3; } + +.kuiSearchInput__input { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-left: 28px; + width: 100%; + } + .kuiSearchInput__input:invalid { + border-color: #BD271E; } + .kuiSearchInput__input:focus { + outline: none; + border-color: #006BB4; } + .kuiSearchInput__input:disabled { + opacity: 0.4; + cursor: not-allowed; } + +.kuiSearchInput--small { + width: 60px; } + +.kuiSearchInput--large { + width: 400px; } + +.kuiSelect { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; + background-repeat: no-repeat; + background-position: calc(100% - 8px); + } + .kuiSelect:invalid { + border-color: #BD271E; } + .kuiSelect:focus { + outline: none; + border-color: #006BB4; } + .kuiSelect:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiSelect:-moz-focusring { + text-shadow: 0 0 0; + } + .kuiSelect.kuiSelect-isInvalid { + border-color: #BD271E; } + .kuiSelect:focus { + box-shadow: none; + outline: none; + border-color: #006BB4; } + +.kuiSelect--small { + width: 60px; } + +.kuiSelect--medium { + width: 180px; } + +.kuiSelect--large { + width: 400px; } + +.kuiStaticInput { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + border: 1px solid transparent; + background-color: transparent; } + +.kuiTextArea { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + } + .kuiTextArea:invalid { + border-color: #BD271E; } + .kuiTextArea:focus { + outline: none; + border-color: #006BB4; } + .kuiTextArea:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiTextArea:focus { + box-shadow: none; + outline: none; + border-color: #006BB4; } + .kuiTextArea.kuiTextArea-isInvalid { + border-color: #BD271E; } + +.kuiTextArea--nonResizable { + resize: none; } + +.kuiTextArea--small { + width: 60px; } + +.kuiTextArea--large { + width: 400px; } + +.kuiTextInput { + width: 180px; + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + } + .kuiTextInput:invalid { + border-color: #BD271E; } + .kuiTextInput:focus { + outline: none; + border-color: #006BB4; } + .kuiTextInput:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiTextInput.kuiTextInput-isInvalid { + border-color: #BD271E; } + +.kuiTextInput--small { + width: 60px; } + +.kuiTextInput--large { + width: 400px; } + +.kuiFieldGroup { + display: flex; + align-items: center; + } + +.kuiFieldGroup--alignTop { + align-items: flex-start; } + +.kuiFieldGroupSection { + line-height: 1.5; } + .kuiFieldGroupSection + .kuiFieldGroupSection { + margin-left: 10px; } + +.kuiFieldGroupSection--wide { + flex: 1 1 auto; } + .kuiFieldGroupSection--wide > * { + width: 100%; } + +.kuiIcon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome, sans-serif; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + +.kuiIcon--info { + color: #006BB4; } + +.kuiIcon--success { + color: #017D73; } + +.kuiIcon--warning { + color: #F5A700; } + +.kuiIcon--error { + color: #BD271E; } + +.kuiIcon--inactive { + color: #D3DAE6; } + +.kuiIcon--basic { + color: #69707D; } + +.kuiInfoPanel { + padding: 14px 20px 18px; + line-height: 1.5; + border: 2px solid; } + +.kuiInfoPanel--info { + border-color: rgba(0, 107, 180, 0.25); + } + +.kuiInfoPanel--success { + border-color: rgba(1, 125, 115, 0.25); + } + +.kuiInfoPanel--warning { + border-color: rgba(245, 167, 0, 0.25); + } + +.kuiInfoPanel--error { + border-color: rgba(189, 39, 30, 0.25); + } + +.kuiInfoPanelHeader { + display: flex; + align-items: baseline; + } + +.kuiInfoPanelHeader__icon { + margin-right: 10px; + font-size: 16px; + line-height: 1.5; } + +.kuiInfoPanelHeader__title { + font-size: 16px; + line-height: 1.5; + font-weight: 700; } + +.kuiInfoPanelBody { + margin-top: 8px; } + .kuiInfoPanelBody > * + * { + margin-top: 8px; } + +.kuiInfoPanelBody__message { + font-size: 16px; + line-height: 1.5; } + +.kuiLink { + color: #006BB4; + text-decoration: none; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + } + .kuiLink:visited, .kuiLink:active { + color: #006BB4; } + .kuiLink:hover { + color: #004d81; + text-decoration: underline; } + +.kuiLocalBreadcrumbs { + display: flex; + align-items: center; + padding: 12px 8px; + border-bottom: 1px solid #D3DAE6; + flex-grow: 1; + flex-basis: 100%; + background-color: #FFF; } + +.kuiLocalBreadcrumb { + font-size: 14px; + margin: 0; + font-weight: normal; } + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb { + margin-left: 6px; } + .kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before { + content: "/"; + -webkit-user-select: none; + user-select: none; + margin-right: 4px; + color: #D3DAE6; } + +.kuiLocalBreadcrumb__link { + color: #006BB4; + text-decoration: none; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: inherit; + line-height: inherit; + color: #006BB4; + font-size: 16px; } + .kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active { + color: #006BB4; } + .kuiLocalBreadcrumb__link:hover { + color: #004d81; + text-decoration: underline; } + +.kuiLocalBreadcrumb__emphasis { + font-weight: 700; } + +.kuiDatePicker { + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; + line-height: 1.5; } + +.kuiDatePickerNavigationCell { + padding: 0; } + +.kuiDatePickerNavigation { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 4px; } + +.kuiDatePickerNavigationButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: none; + font-size: 14px; + color: #343741; + padding: 3px 6px; + border-radius: 4px; } + .kuiDatePickerNavigationButton:hover, .kuiDatePickerNavigationButton:active { + cursor: pointer; + color: #F5F7FA; + background-color: #006BB4; } + .kuiDatePickerNavigationButton:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; + color: #343741; + } + +.kuiDatePickerHeaderCell { + padding: 9px 0; + color: #343741; + font-size: 14px; + font-weight: bold; + text-align: center; + line-height: 1.2; } + +.kuiDatePickerRowCell { + padding: 0; + text-align: center; + } + .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked { + cursor: not-allowed; } + .kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent { + pointer-events: none; } + +.kuiDatePickerRowCellContent { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + width: 100%; + border: 1px solid transparent; + color: #343741; + font-size: 14px; + padding: 8px; + border-radius: 4px; + line-height: 1.2; } + .kuiDatePickerRowCellContent:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4; + color: #343741; + } + .kuiDatePickerRowCellContent:disabled { + pointer-events: none; + opacity: 0.5; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isOtherMonth { + visibility: hidden; + pointer-events: none; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isCurrent { + color: #006BB4; } + .kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isSelected { + background-color: #69707D; + color: #343741; } + .kuiDatePickerRowCellContent:hover, .kuiDatePickerRowCellContent:active { + cursor: pointer; + color: #F5F7FA; + background-color: #006BB4; } + +.kuiLocalDropdown { + position: relative; + padding: 10px 8px 14px; + background-color: transparent; + margin-bottom: 10px; + line-height: 20px; } + +.kuiLocalDropdownCloseButton { + -webkit-appearance: none; + appearance: none; + background-color: transparent; + padding: 4px; + border: none; + line-height: 1; + font-size: 16px; + color: #343741 !important; + cursor: pointer; + opacity: 0.35; + position: absolute; + top: 1px; + right: 5px; } + .kuiLocalDropdownCloseButton:hover { + opacity: 1; } + +.kuiLocalDropdownPanels { + display: flex; } + +.kuiLocalDropdownPanel { + flex: 1 1 0%; } + +.kuiLocalDropdownPanel--left { + margin-right: 30px; } + +.kuiLocalDropdownPanel--right { + margin-left: 30px; } + +.kuiLocalDropdownTitle { + margin-top: 0; + margin-bottom: 12px; + font-size: 18px; + color: #343741; } + +.kuiLocalDropdownSection { + margin-bottom: 16px; } + .kuiLocalDropdownSection:last-child { + margin-bottom: 0; } + +.kuiLocalDropdownHeader { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 6px; } + +.kuiLocalDropdownHeader__label { + font-size: 14px; + font-weight: 700; + margin-bottom: 0; + color: #343741; } + +.kuiLocalDropdownHeader__actions { + display: flex; } + +.kuiLocalDropdownHeader__action { + color: #006BB4; + font-size: 12px; + text-decoration: none; + cursor: pointer; } + .kuiLocalDropdownHeader__action + .kuiLocalDropdownHeader__action { + margin-left: 10px; } + .kuiLocalDropdownHeader__action:hover, .kuiLocalDropdownHeader__action:active { + color: #004d81; } + +.kuiLocalDropdownInput { + display: block; + width: 100%; + margin-bottom: 12px; + padding: 5px 15px; + font-size: 14px; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; } + .kuiLocalDropdownInput:focus { + border-color: #006BB4; } + +.kuiLocalDropdownFormNote { + font-size: 14px; + color: #69707D; } + +.kuiLocalDropdownWarning { + margin-bottom: 16px; + padding: 6px 10px; + font-size: 14px; + color: #343741; + background-color: #FFF; + border-left: solid 2px #BD271E; } + +.kuiLocalDropdownHelpText { + margin-bottom: 16px; + font-size: 14px; + color: #69707D; } + +.kuiLocalMenu { + display: flex; + align-items: stretch; + padding-top: 8px; + padding-bottom: 8px; } + +.kuiLocalMenuItem { + display: flex; + align-items: center; + padding: 2px 8px; + font-size: 16px; + background-color: transparent; + color: #343741; + border: 0; + cursor: pointer; + border-bottom: solid 2px transparent; } + .kuiLocalMenuItem:hover, .kuiLocalMenuItem:focus { + background-color: rgba(0, 107, 180, 0.15); + text-decoration: underline; } + .kuiLocalMenuItem.kuiLocalMenuItem-isSelected { + color: #006BB4; + background-color: transparent; + border-color: #006BB4; + z-index: 2; } + .kuiLocalMenuItem.kuiLocalMenuItem-isSelected:hover, .kuiLocalMenuItem.kuiLocalMenuItem-isSelected:focus { + text-decoration: none; } + .kuiLocalMenuItem.kuiLocalMenuItem-isDisabled { + opacity: 0.5; + cursor: not-allowed; } + .kuiLocalMenuItem.kuiLocalMenuItem-isDisabled:hover { + background-color: transparent; + text-decoration: none; } + +.kuiLocalMenuItem__icon { + margin-right: 5px; + margin-bottom: -1px; } + +.kuiLocalNav { + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: 69px; + color: #343741; + background-color: #FFF; + line-height: 1.5; + border-bottom: solid 1px #D3DAE6; } + +.kuiLocalNavRow { + display: flex; + align-items: stretch; + justify-content: space-between; } + +.kuiLocalNavRow__section { + display: flex; + align-items: stretch; } + +.kuiLocalNavRow--secondary { + padding: 0 8px; + align-items: flex-start; + } + +.kuiLocalSearch { + display: flex; + width: 100%; + margin-bottom: 8px; } + +.kuiLocalSearchInput { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + flex: 1 1 100%; + border-color: #FFF; + border-color: #D3DAE6; + border-radius: 4px 0 0 4px; } + .kuiLocalSearchInput:invalid { + border-color: #BD271E; } + .kuiLocalSearchInput:focus { + outline: none; + border-color: #006BB4; } + .kuiLocalSearchInput:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiLocalSearchInput:focus { + box-shadow: none; } + .kuiLocalSearchInput.kuiLocalSearchInput-isInvalid { + border-color: #BD271E; } + +.kuiLocalSearchInput--secondary { + height: 32px; + flex: 0 0 auto; + border-radius: 0; + border-left-width: 0; } + +.kuiLocalSearchInput, +.kuiLocalSearchAssistedInput__input { + padding-right: 6em; + } + +.kuiLocalSearchAssistedInput__assistance { + position: absolute; + right: 6px; + top: 50%; + z-index: 2; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + } + +.kuiLocalSearchSelect { + -webkit-appearance: none; + appearance: none; + font-family: "var(--font-text)"; + padding: 4px 12px 4px; + font-size: 16px; + font-weight: 400; + line-height: 1.5; + color: #343741; + background-color: #fbfcfd; + border: 1px solid rgba(15, 39, 118, 0.1); + border-radius: 4px; + transition: border-color 0.1s linear; + min-height: 32px; + padding-right: 30px; + background-image: url('data:image/svg+xml;utf8,'); + background-size: 14px; + background-repeat: no-repeat; + background-position: calc(100% - 8px); + border-left-width: 0; + border-radius: 0; } + .kuiLocalSearchSelect:invalid { + border-color: #BD271E; } + .kuiLocalSearchSelect:focus { + outline: none; + border-color: #006BB4; } + .kuiLocalSearchSelect:disabled { + opacity: 0.4; + cursor: not-allowed; } + .kuiLocalSearchSelect:-moz-focusring { + text-shadow: 0 0 0; + } + +.kuiLocalSearchButton { + width: 43px; + height: 32px; + font-size: 16px; + line-height: 0; + color: #FFF; + background-color: #006BB4; + border: 0; + border-radius: 0 4px 4px 0; } + .kuiLocalSearchButton:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } + +.kuiLocalTabs { + display: flex; + align-items: flex-end; + height: 100%; } + +.kuiLocalTab { + padding: 5px 0 6px; + font-size: 18px; + color: #343741; + border-bottom: 2px solid transparent; + text-decoration: none; + cursor: pointer; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) { + color: #006BB4; } + .kuiLocalTab.kuiLocalTab-isSelected { + color: #006BB4; + border-bottom-color: #006BB4; + cursor: default; } + .kuiLocalTab.kuiLocalTab-isDisabled { + opacity: 0.5; + cursor: default; + } + .kuiLocalTab + .kuiLocalTab { + margin-left: 15px; } + +.kuiLocalTitle { + display: flex; + align-items: center; + padding: 12px 8px; + font-size: 16px; + font-weight: bold; + border-bottom: 1px solid #D3DAE6; + flex-grow: 1; + flex-basis: 100%; + background-color: #FFF; } + .kuiLocalTitle:empty { + padding: 0; + display: none; } + +.kuiPager { + display: flex; + align-items: center; } + .kuiPager > * + * { + margin-left: 10px; + } + +.kuiPagerText { + font-size: 16px; + line-height: 1.5; + color: #69707D; + white-space: nowrap; + } + +.kuiPanel { + box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3); + background-color: #FFF; + border: 1px solid #D3DAE6; + border-radius: 4px; } + +.kuiPanel--prompt { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + justify-content: center; + min-height: 300px; } + .kuiPanel--prompt .kuiPanelBody { + padding: 30px; + max-width: 500px; } + +.kuiPanel--noBorder { + border: none; } + +.kuiPanel--withToolBar { + border-top: none; + border-radius: 0; } + +.kuiPanel--centered { + display: flex; + justify-content: center; + align-items: center; } + +.kuiPanelHeader { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 50px; + border-bottom: 1px solid #D3DAE6; } + .kuiPanelHeader .kuiButton:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } + a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } + .kuiPanelHeader .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } + a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } + .kuiPanelHeader .kuiSelect { + border-color: #fbfcfd; } + .kuiPanelHeader .kuiSelect:not(a):enabled:focus { + outline: none; + border-color: #006BB4; } + a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus { + outline: none; + border-color: #006BB4; } + +.kuiPanelHeader__title { + font-size: 20px; + line-height: 1.5; + margin: 0; + } + +.kuiPanelHeaderSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiPanelHeaderSection:first-child { + margin-left: 0; } + .kuiPanelHeaderSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiPanelHeaderSection:only-child { + margin-left: auto; + } + .kuiPanelHeaderSection > * + * { + margin-left: 10px; + } + .kuiPanelHeaderSection:only-child { + margin-left: 0; + margin-right: auto; + } + +.kuiPanelBody { + padding: 10px; } + +.kuiEmptyTablePrompt { + display: flex; + flex-direction: column; + align-items: center; + padding: 30px; } + +.kuiEmptyTablePrompt__message { + font-size: 20px; + color: #69707D; + line-height: 1.5; } + +.kuiEmptyTablePrompt__actions { + margin-top: 10px; } + +.kuiStatusText { + display: inline-flex; + align-items: baseline; } + +.kuiStatusText--info { + color: #006BB4; } + +.kuiStatusText--success { + color: #017D73; } + +.kuiStatusText--warning { + color: #F5A700; } + +.kuiStatusText--error { + color: #BD271E; } + +.kuiStatusText__icon { + margin-right: 6px; + width: 1.15em; + max-height: 1.15em; + } + +.kuiControlledTable { + background: #FFF; } + .kuiControlledTable .kuiTable { + border-top: none; + } + .kuiControlledTable .kuiToolBarFooter { + border-top: none; + } + .kuiControlledTable .kuiMenu--contained { + border-top: none; + } + +.kuiTable { + width: 100%; + border: 1px solid #D3DAE6; + border-collapse: collapse; + background-color: #FFF; } + +.kuiTable--fluid { + width: auto; + } + .kuiTable--fluid .kuiTableHeaderCell, + .kuiTable--fluid .kuiTableRowCell { + max-width: none; + } + +.kuiTableHeaderCell { + font-size: 16px; + font-weight: 400; + text-align: left; + max-width: 20px; + line-height: 1.5; + color: #69707D; } + +.kuiTableHeaderCell__liner { + display: inline-block; + padding: 7px 8px 8px; } + +.kuiTableHeaderCellButton { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + width: 100%; + -webkit-appearance: none; + appearance: none; + background-color: transparent; + border: 0; + padding: 0; + color: inherit; + line-height: inherit; + font-size: inherit; + text-align: inherit; + } + .kuiTableHeaderCellButton:hover .kuiTableSortIcon { + display: block; + opacity: 1; } + .kuiTableHeaderCellButton .kuiTableHeaderCell__liner { + display: flex; + align-items: center; } + +.kuiTableHeaderCell--alignRight { + text-align: right; } + +.kuiTableSortIcon { + display: none; + pointer-events: none; + margin-left: 4px; } + .kuiTableHeaderCellButton-isSorted .kuiTableSortIcon { + display: block; + opacity: 0.4; } + +.kuiTableRow:hover .kuiTableRowHoverReveal { + display: inline-block; } + +.kuiTableRowHoverReveal { + display: none; } + +.kuiTableRowCell { + font-size: 16px; + font-weight: 400; + text-align: left; + max-width: 20px; + color: #343741; + border-top: 1px solid #D3DAE6; + vertical-align: middle; } + +.kuiTableRowCell__liner { + padding: 7px 8px 8px; + line-height: 1.5; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .kuiTableRowCell__liner > * { + vertical-align: middle; + } + +.kuiTableRowCell--wrap .kuiTableRowCell__liner { + white-space: normal; } + +.kuiTableRowCell--overflowingContent .kuiTableRowCell__liner { + overflow: visible; + white-space: normal; } + +.kuiTableRowCell--expanded { + border-top-color: #FFF; + } + +.kuiTableRowCell--alignRight { + text-align: right; } + .kuiTableRowCell--alignRight .kuiTableRowCell__liner { + text-align: right; } + +.kuiTableHeaderCell--checkBox, +.kuiTableRowCell--checkBox { + width: 28px; + line-height: 1; + } + .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, + .kuiTableRowCell--checkBox .kuiTableRowCell__liner { + overflow: visible; + } + .kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner, + .kuiTableHeaderCell--checkBox .kuiTableRowCell__liner, + .kuiTableRowCell--checkBox .kuiTableHeaderCell__liner, + .kuiTableRowCell--checkBox .kuiTableRowCell__liner { + padding-right: 0; } + +.kuiTableInfo { + padding: 30px; + font-size: 20px; + color: #69707D; + line-height: 1.5; } + +.kuiTabs { + display: flex; + border-bottom: 1px solid #D3DAE6; } + +.kuiTab { + -webkit-appearance: none; + appearance: none; + cursor: pointer; + padding: 10px 30px; + font-size: 16px; + color: #69707D; + background-color: transparent; + border: 1px solid #D3DAE6; + border-radius: 0; + margin-bottom: -1px; + } + .kuiTab + .kuiTab { + border-left: none; } + .kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { + margin-left: -1px; + } + .kuiTab:active { + outline: none !important; + box-shadow: none; + } + .kuiTab:focus { + outline: none; + } + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) { + z-index: 1; + color: #006BB4; + border: 1px solid #006BB4 !important; } + .kuiTab:hover:not(.kuiTab-isSelected) { + color: #004d81; + background-color: #F5F7FA; } + .kuiTab.kuiTab-isSelected { + cursor: default; + color: #343741; + background-color: transparent; + border-bottom-color: transparent; } + +.kuiToolBar { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 50px; + background-color: transparent; + border: solid 1px #D3DAE6; } + .kuiToolBar .kuiButton:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } + a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4; + } + .kuiToolBar .kuiButton--danger:not(a):enabled:focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } + a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus { + z-index: 1; + outline: none !important; + box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E; + } + .kuiToolBar .kuiSelect { + border-color: #fbfcfd; } + .kuiToolBar .kuiSelect:not(a):enabled:focus { + outline: none; + border-color: #006BB4; } + a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus { + outline: none; + border-color: #006BB4; } + +.kuiToolBarSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiToolBarSection:first-child { + margin-left: 0; } + .kuiToolBarSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiToolBarSection:only-child { + margin-left: auto; + } + .kuiToolBarSection > * + * { + margin-left: 10px; + } + +.kuiToolBar--searchOnly .kuiToolBarSearch { + margin-left: 0 !important; + } + +.kuiToolBarFooter { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 30px; + padding: 10px; + height: 40px; + background-color: #FFF; } + +.kuiToolBarFooterSection { + display: flex; + align-items: center; + flex: 1 1 auto; + margin-left: 25px; + margin-right: 25px; } + .kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) { + justify-content: center; + } + .kuiToolBarFooterSection:first-child { + margin-left: 0; } + .kuiToolBarFooterSection:last-child { + margin-right: 0; + flex: 0 1 auto; + justify-content: flex-end; + } + .kuiToolBarFooterSection:only-child { + margin-left: auto; + } + .kuiToolBarFooterSection > * + * { + margin-left: 10px; + } + +.kuiToolBarSearch { + display: flex; + align-items: center; + margin-left: 25px; + margin-right: 25px; + flex: 1 1 auto; + max-width: 100%; + line-height: 1.5; } + .kuiToolBarSearch:first-child { + margin-left: 0; } + .kuiToolBarSearch:last-child { + margin-right: 0; } + .kuiToolBarSearch > * + * { + margin-left: 10px; + } + +.kuiToolBarSearchBox { + flex: 1 1 auto; + position: relative; + font-size: 16px; + max-width: 800px; } + +.kuiToolBarSearchBox__icon { + position: absolute; + top: 0.5em; + left: 0.7em; + font-size: 1em; + color: #acacac; } + +.kuiToolBarSearchBox__input { + width: 100%; + min-width: 200px; + padding: 4px 12px 5px 28px; + font-family: "var(--font-text)"; + background-color: #FFF; + color: #343741; + border-radius: 4px; + font-size: 1em; + border: 1px solid #D3DAE6; + line-height: normal; + transition: border-color 0.1s linear; } + .kuiToolBarSearchBox__input:focus { + outline: none; + border-color: #006BB4; } + +.kuiToolBarText { + font-size: 16px; + line-height: 1.5; + color: #69707D; + white-space: nowrap; + } + +.kuiTitle { + margin: 0; + font-weight: 400; + font-size: 24px; } + +.kuiSubTitle { + margin: 0; + font-weight: 400; + font-size: 20px; } + +.kuiTextTitle { + margin: 0; + font-weight: 700; + line-height: 1.5; + font-size: 16px; } + +.kuiText { + margin: 0; + font-weight: 400; + line-height: 1.5; + font-size: 16px; } + +.kuiSubText { + margin: 0; + font-weight: 400; + line-height: 1.5; + font-size: 14px; } + +.kuiSubduedText { + color: #69707D !important; } + +.kuiVerticalRhythm + .kuiVerticalRhythm { + margin-top: 16px; } + +.kuiVerticalRhythmSmall + .kuiVerticalRhythmSmall { + margin-top: 8px; } + +.kuiVerticalRhythmLarge + .kuiVerticalRhythmLarge { + margin-top: 24px; } + +.kuiVerticalRhythmXLarge + .kuiVerticalRhythmXLarge { + margin-top: 32px; } + +.kuiView { + background-color: #fff; + flex: 1 1 auto; } + +.kuiViewContent { + padding-top: 20px; + padding-bottom: 20px; + width: 100%; } + +.kuiViewContent--constrainedWidth { + width: 100%; + max-width: 1100px; + margin-left: auto; + margin-right: auto; } + +.kuiViewContentItem { + padding-left: 20px; + padding-right: 20px; } diff --git a/packages/osd-ui-framework/package.json b/packages/osd-ui-framework/package.json index ffd624757392..8375cc3b8295 100644 --- a/packages/osd-ui-framework/package.json +++ b/packages/osd-ui-framework/package.json @@ -23,14 +23,16 @@ "enzyme-adapter-react-16": "^1.9.1" }, "devDependencies": { - "@elastic/eui": "npm:@opensearch-project/oui@1.1.1", + "@elastic/eui": "npm:@opensearch-project/oui@1.3.0-alpha.2", "@osd/babel-preset": "1.0.0", "@osd/optimizer": "1.0.0", + "comment-stripper": "^0.0.4", "grunt": "^1.5.2", "grunt-babel": "^8.0.0", "grunt-contrib-clean": "^2.0.0", "grunt-contrib-copy": "^1.0.0", - "node-sass": "^8.0.0", + "node-sass": "npm:@amoo-miki/node-sass@9.0.0-libsass-3.6.5", + "sass-loader": "npm:@amoo-miki/sass-loader@10.4.1-node-sass-9.0.0-libsass-3.6.5", "postcss": "^8.4.5", "sinon": "^7.4.2" } diff --git a/packages/osd-ui-framework/src/global_styling/variables/_font.scss b/packages/osd-ui-framework/src/global_styling/variables/_font.scss index 51a2bab88c07..fc9b937563f3 100644 --- a/packages/osd-ui-framework/src/global_styling/variables/_font.scss +++ b/packages/osd-ui-framework/src/global_styling/variables/_font.scss @@ -1,6 +1,6 @@ // Font -$kuiFontFamily: $euiFontFamily; +$kuiFontFamily: var(--font-text); $kuiFontSize: $euiFontSize; $kuiLineHeight: $euiLineHeight; $kuiSubTextFontSize: $euiFontSizeS; diff --git a/packages/osd-ui-framework/src/kui_next_dark.scss b/packages/osd-ui-framework/src/kui_next_dark.scss new file mode 100644 index 000000000000..22f84027acb4 --- /dev/null +++ b/packages/osd-ui-framework/src/kui_next_dark.scss @@ -0,0 +1,15 @@ +// EUI global scope is used for KUI variables till fully deprecated +@import "../../../node_modules/@elastic/eui/src/themes/eui-next/eui_next_colors_dark"; +@import "../../../node_modules/@elastic/eui/src/global_styling/functions/index"; +@import "../../../node_modules/@elastic/eui/src/global_styling/variables/index"; +@import "../../../node_modules/@elastic/eui/src/global_styling/mixins/index"; + +// Configuration +@import "global_styling/variables/index"; + +// Coreß +@import "global_styling/mixins/index"; +@import "global_styling/reset/index"; + +// Components +@import "components/index"; diff --git a/packages/osd-ui-framework/src/kui_next_light.scss b/packages/osd-ui-framework/src/kui_next_light.scss new file mode 100644 index 000000000000..60250d41d9ba --- /dev/null +++ b/packages/osd-ui-framework/src/kui_next_light.scss @@ -0,0 +1,15 @@ +// EUI global scope is used for KUI variables till fully deprecated +@import "../../../node_modules/@elastic/eui/src/themes/eui-next/eui_next_colors_light"; +@import "../../../node_modules/@elastic/eui/src/global_styling/functions/index"; +@import "../../../node_modules/@elastic/eui/src/global_styling/variables/index"; +@import "../../../node_modules/@elastic/eui/src/global_styling/mixins/index"; + +// Configuration +@import "global_styling/variables/index"; + +// Core +@import "global_styling/mixins/index"; +@import "global_styling/reset/index"; + +// Components +@import "components/index"; diff --git a/packages/osd-ui-shared-deps/flot_charts/API.md b/packages/osd-ui-shared-deps/flot_charts/API.md index 699e2500f494..4fd076f1ac2a 100644 --- a/packages/osd-ui-shared-deps/flot_charts/API.md +++ b/packages/osd-ui-shared-deps/flot_charts/API.md @@ -167,7 +167,7 @@ var options = { points: { show: true } } }; - + $.plot(placeholder, data, options); ``` @@ -254,10 +254,10 @@ xaxis, yaxis: { min: null or number max: null or number autoscaleMargin: null or number - + transform: null or fn: number -> number inverseTransform: null or fn: number -> number - + ticks: null or number or ticks array or (fn: axis -> ticks array) tickSize: number or array minTickSize: number or array @@ -267,7 +267,7 @@ xaxis, yaxis: { labelWidth: null or number labelHeight: null or number reserveSpace: null or true - + tickLength: null or number alignTicksWithAxis: null or number @@ -415,7 +415,7 @@ ticks: [[0, "zero"], [1.2, "one mark"], [2.4, "two marks"]] ``` You can mix the two if you like. - + For extra flexibility you can specify a function as the "ticks" parameter. The function will be called with an object with the axis min and max and should return a ticks array. Here's a simplistic tick @@ -575,7 +575,7 @@ In Python you can get it with something like: calendar.timegm(datetime_object.timetuple()) * 1000 ``` In Ruby you can get it using the `#to_i` method on the -[`Time`](http://apidock.com/ruby/Time/to_i) object. If you're using the +`Time` object. If you're using the `active_support` gem (default for Ruby on Rails applications) `#to_i` is also available on the `DateTime` and `ActiveSupport::TimeWithZone` objects. You simply need to multiply the result by 1000: @@ -765,7 +765,7 @@ The options inside "series: {}" are copied to each of the series. So you can specify that all series should have bars by putting it in the global options, or override it for individual series by specifying bars in a particular the series object in the array of data. - + The most important options are "lines", "points" and "bars" that specify whether and how lines, points and bars should be shown for each data series. In case you don't specify anything at all, Flot will @@ -801,8 +801,8 @@ the y axis if "horizontal" is true), contrary to most other measures that are specified in pixels. For instance, for time series the unit is milliseconds so 24 * 60 * 60 * 1000 produces bars with the width of a day. "align" specifies whether a bar should be left-aligned -(default), right-aligned or centered on top of the value it represents. -When "horizontal" is on, the bars are drawn horizontally, i.e. from the +(default), right-aligned or centered on top of the value it represents. +When "horizontal" is on, the bars are drawn horizontally, i.e. from the y axis instead of the x axis; note that the bar end points are still defined in the same way so you'll probably want to swap the coordinates if you've been plotting vertical bars first. @@ -1004,7 +1004,7 @@ item: { } ``` -For instance, if you have specified the data like this +For instance, if you have specified the data like this ```js $.plot($("#placeholder"), [ { label: "Foo", data: [[0, 10], [7, 3]] } ], ...); @@ -1155,7 +1155,7 @@ can call: Returns the calculated offset of the data point at (x, y) in data space within the placeholder div. If you are working with multiple - axes, you can specify the x and y axis references, e.g. + axes, you can specify the x and y axis references, e.g. ```js o = pointOffset({ x: xpos, y: ypos, xaxis: 2, yaxis: 3 }) @@ -1215,8 +1215,8 @@ Flot to keep track of its state, so be careful. With multiple axes, the extra axes are returned as x2axis, x3axis, etc., e.g. getAxes().y2axis is the second y axis. You can check y2axis.used to see whether the axis is associated with any data - points and y2axis.show to see if it is currently shown. - + points and y2axis.show to see if it is currently shown. + - getPlaceholder() Returns placeholder that the plot was put into. This can be useful @@ -1226,7 +1226,7 @@ Flot to keep track of its state, so be careful. Returns the canvas used for drawing in case you need to hack on it yourself. You'll probably need to get the plot offset too. - + - getPlotOffset() Gets the offset that the grid has within the canvas as an object @@ -1242,7 +1242,7 @@ Flot to keep track of its state, so be careful. if you modify the values in here, Flot will use the new values. If you change something, you probably have to call draw() or setupGrid() or triggerRedrawOverlay() to see the change. - + ## Hooks ## @@ -1254,7 +1254,7 @@ gets access to the internal data structures in Flot. Here's an overview of the phases Flot goes through: 1. Plugin initialization, parsing options - + 2. Constructing the canvases used for drawing 3. Set data: parsing data specification, calculating colors, @@ -1270,7 +1270,7 @@ Here's an overview of the phases Flot goes through: 7. Responding to events, if any - 8. Shutdown: this mostly happens in case a plot is overwritten + 8. Shutdown: this mostly happens in case a plot is overwritten Each hook is simply a function which is put in the appropriate array. You can add them through the "hooks" option, and they are also available @@ -1295,22 +1295,22 @@ hooks in the plugins bundled with Flot. - processOptions [phase 1] ```function(plot, options)``` - + Called after Flot has parsed and merged options. Useful in the instance where customizations beyond simple merging of default values is needed. A plugin might use it to detect that it has been enabled and then turn on or off other options. - + - processRawData [phase 3] ```function(plot, series, data, datapoints)``` - + Called before Flot copies and normalizes the raw data for the given series. If the function fills in datapoints.points with normalized points and sets datapoints.pointsize to the size of the points, Flot will skip the copying/normalization step for this series. - + In any case, you might be interested in setting datapoints.format, an array of objects for specifying how a point is normalized and how it interferes with axis scaling. It accepts the following options: @@ -1430,7 +1430,7 @@ hooks in the plugins bundled with Flot. state by drawing something (add a drawOverlay hook and call triggerRedrawOverlay) or firing an externally visible event for user code. See the crosshair plugin for an example. - + Currently, eventHolder actually contains both the static canvas used for the plot itself and the overlay canvas used for interactive features because some versions of IE get the stacking @@ -1469,7 +1469,7 @@ hooks in the plugins bundled with Flot. add a callback to clean up after you. Take a look at the section in the [PLUGINS](PLUGINS.md) document for more info. - + ## Plugins ## Plugins extend the functionality of Flot. To use a plugin, simply diff --git a/packages/osd-ui-shared-deps/package.json b/packages/osd-ui-shared-deps/package.json index a4924657cb1e..3e73fa0c8575 100644 --- a/packages/osd-ui-shared-deps/package.json +++ b/packages/osd-ui-shared-deps/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@elastic/charts": "31.1.0", - "@elastic/eui": "npm:@opensearch-project/oui@1.1.1", + "@elastic/eui": "npm:@opensearch-project/oui@1.3.0-alpha.2", "@elastic/numeral": "^2.5.0", "@osd/i18n": "1.0.0", "@osd/monaco": "1.0.0", @@ -42,9 +42,12 @@ "@osd/babel-preset": "1.0.0", "@osd/dev-utils": "1.0.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", + "comment-stripper": "^0.0.4", "css-loader": "^5.2.7", "del": "^6.1.1", "loader-utils": "^2.0.4", + "node-sass": "npm:@amoo-miki/node-sass@9.0.0-libsass-3.6.5", + "sass-loader": "npm:@amoo-miki/sass-loader@10.4.1-node-sass-9.0.0-libsass-3.6.5", "val-loader": "^2.1.2", "webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2" } diff --git a/packages/osd-ui-shared-deps/theme.ts b/packages/osd-ui-shared-deps/theme.ts index 1f7f70b85c5e..45a4f68cfd4b 100644 --- a/packages/osd-ui-shared-deps/theme.ts +++ b/packages/osd-ui-shared-deps/theme.ts @@ -46,8 +46,8 @@ if (version === 7) { euiLightVars = require('@elastic/eui/dist/eui_theme_light.json'); euiDarkVars = require('@elastic/eui/dist/eui_theme_dark.json'); } else { - euiLightVars = require('@elastic/eui/dist/eui_theme_amsterdam_light.json'); - euiDarkVars = require('@elastic/eui/dist/eui_theme_amsterdam_dark.json'); + euiLightVars = require('@elastic/eui/dist/eui_theme_next_light.json'); + euiDarkVars = require('@elastic/eui/dist/eui_theme_next_dark.json'); } /** diff --git a/packages/osd-ui-shared-deps/webpack.config.js b/packages/osd-ui-shared-deps/webpack.config.js index 397fbe12cd4b..d9bfd81af523 100644 --- a/packages/osd-ui-shared-deps/webpack.config.js +++ b/packages/osd-ui-shared-deps/webpack.config.js @@ -45,8 +45,8 @@ exports.getWebpackConfig = ({ dev = false } = {}) => ({ 'osd-ui-shared-deps': './entry.js', 'osd-ui-shared-deps.v7.dark': ['@elastic/eui/dist/eui_theme_dark.css'], 'osd-ui-shared-deps.v7.light': ['@elastic/eui/dist/eui_theme_light.css'], - 'osd-ui-shared-deps.v8.dark': ['@elastic/eui/dist/eui_theme_amsterdam_dark.css'], - 'osd-ui-shared-deps.v8.light': ['@elastic/eui/dist/eui_theme_amsterdam_light.css'], + 'osd-ui-shared-deps.v8.dark': ['@elastic/eui/dist/eui_theme_next_dark.css'], + 'osd-ui-shared-deps.v8.light': ['@elastic/eui/dist/eui_theme_next_light.css'], }, context: __dirname, devtool: dev ? '#cheap-source-map' : false, @@ -76,7 +76,30 @@ exports.getWebpackConfig = ({ dev = false } = {}) => ({ }, { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [ + MiniCssExtractPlugin.loader, + 'css-loader', + { + loader: 'comment-stripper', + options: { + language: 'css', + }, + }, + ], + }, + { + test: /\.scss$/, + use: [ + MiniCssExtractPlugin.loader, + 'css-loader', + { + loader: 'comment-stripper', + options: { + language: 'css', + }, + }, + 'sass-loader', + ], }, { include: [require.resolve('./theme.ts')], diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.11.md b/release-notes/opensearch-dashboards.release-notes-1.3.11.md new file mode 100644 index 000000000000..815f8adad9ff --- /dev/null +++ b/release-notes/opensearch-dashboards.release-notes-1.3.11.md @@ -0,0 +1,19 @@ +# Version 1.3.11 Release Notes + +### 🛡 Security + +- [CVE-2022-1537] Bump grunt from `1.5.2` to `1.5.3` ([#4276](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4276)) +- [CVE-2020-15366] Bump ajv from `4.11.8` to `6.12.6` ([#3769](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3769)) + +### 📈 Features/Enhancements + +### 🐛 Bug Fixes + +### 🚞 Infrastructure + +- Upgrade the backport workflow ([#4343](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4343)) + +### 📝 Documentation + +### 🛠 Maintenance + diff --git a/release-notes/opensearch-dashboards.release-notes-2.9.0.md b/release-notes/opensearch-dashboards.release-notes-2.9.0.md new file mode 100644 index 000000000000..aeff6c0af5d8 --- /dev/null +++ b/release-notes/opensearch-dashboards.release-notes-2.9.0.md @@ -0,0 +1,73 @@ +## Version 2.9.0 Release Notes + +### 🛡 Security + +- Bump `joi` to v14 to avoid the possibility of prototype poisoning in a nested dependency ([#3952](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3952)) +- [CVE-2022-25883] Resolve `semver` to `7.5.3` and remove unused package ([#4411](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4411)) +- Bump tough-cookie from 4.0.0 to 4.1.3 ([#4531](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4531)) + +### 📈 Features/Enhancements + +- Add plugin manifest config to define OpenSearch plugin dependency and verify if it is installed on the cluster ([#3116](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3116)) +- Replace re2 with RegExp in timeline and add unit tests ([#3908](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3908)) +- Hide any output from use_node checking for Node compatibility ([#4237](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4237)) +- Add category option within groups for context menus ([#4144](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4144)) +- [Saved Object Service] Add Repository Factory Provider ([#4149](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4149)) +- [Sample Data] Add visual consistency dashboard to sample logs data ([#4339](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4339)) +- [@osd/pm] Fix `file:`-linked dependencies' resolution to improve ability to test with local packages ([#4342](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4342)) +- [Multiple DataSource] Backend support for adding sample data ([#4268](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4268)) +- Add configurable defaults and overrides to uiSettings ([#4344](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4344)) +- Update header logo selection logic to match the header's theme ([#4383](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4383)) +- Introduce new fonts for the Next theme ([#4381](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4381)) +- Bump OUI to `1.1.2` to make `anomalyDetection` icon available ([#4408](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4408)) +- Add `color-scheme` to the root styling ([#4477](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4477)) +- [Multiple DataSource] Frontend support for adding sample data ([#4412](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4412)) +- Enable plugins to augment visualizations with additional data and context ([#4361](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4361)) +- Dashboard De-Angularization ([#4502](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4502)) +- New management overview page and rename stack management to dashboard management ([#4287](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4287)) +- [Vis Augmenter] Update base vis height in view events flyout ([#4535](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4535)) + +### 🐛 Bug Fixes + +- [Saved Objects Management] Fix relationships header overflow ([#4070](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4070)) +- Update main menu to display 'Dashboards' for consistency ([#4453](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4453)) +- [Multiple DataSource] Retain the original sample data API ([#4526](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4526)) +- Remove `lmdb-store` to fix backport issue ([#4266](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4266)) + +### 🚞 Infrastructure + +- Upgrade the backport workflow ([#4343](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4343)) +- [Lint] Add custom stylelint rules and config to prevent unintended style overrides ([#4290](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4290)) +- [Lint] Add stylelint rule to define properties that are restricted from being used ([#4374](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4374)) +- [Lint] Add typing to Stylelint rules ([#4392](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4392)) +- [CI] Split build and verify into parallel jobs ([#4467](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4467)) + +### 📝 Documentation + +- [Saved Object Service] Adds design doc for new Saved Object Service Interface for Custom Repository [#3954](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3954) + +### 🛠 Maintenance + +- Adding @ZilongX and @Flyingliuhub as maintainers. ([#4137](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4137)) +- Add new MAINTAINERS to CODEOWNERS file. ([#4199](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4199)) +- Adding @BSFishy as maintainer. ([#4469](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4469)) + +### 🪛 Refactoring + +- [Table Visualization] Remove custom styling for text-align:center in favor of OUI utility class. ([#4164](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4164)) +- Migrate from legacy elasticsearch client to opensearch-js client in `osd-opensearch-archiver` package([#4142](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4142)) +- Replace the use of `bluebird` in `saved_objects` plugin ([#4026](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4026)) +- Relocate tutorials imagery into `src/plugins/home/public/assets/tutorials/logos` ([#4382](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4382)) +- [VisBuilder] Use OUI icon ([#4446](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4446)) +- [Vis Colors] [Region Maps] Replace hardcode color to OUI color in `region_map` plugin ([#4299](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4299)) +- [Vis Colors] Replace color maps with OUI color palettes ([#4293](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4293)) +- [Vis Colors] [Maps] Replace hardcoded color to OUI color in `maps_legacy` plugin ([#4294](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4294)) +- [Vis Colors] [TSVB] Update default color in `vis_type_timeseries` to use `ouiPaletteColorBlind()[0]`([#4363](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4363)) +- [Vis Colors] [Timeline] Replace `vis_type_timeline` colors with `ouiPaletteColorBlind()` ([#4366](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4366)) +- [Vis Colors] Update legacy seed colors to use `ouiPaletteColorBlind()` ([#4348](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4348)) +- [Console] Migrate `/lib/mappings/` module to TypeScript ([#4008](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4008)) + +### 🔩 Tests + +- [Vis Augmenter Add UT for few fns ([#4516](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4516)) +- [BWC Tests] Add BWC tests for 2.7.0 and 2.8.0 ([#4023](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4023)) diff --git a/scripts/i18n_check.js b/scripts/i18n_check.js old mode 100644 new mode 100755 diff --git a/scripts/i18n_extract.js b/scripts/i18n_extract.js old mode 100644 new mode 100755 diff --git a/scripts/i18n_integrate.js b/scripts/i18n_integrate.js old mode 100644 new mode 100755 diff --git a/scripts/use_node b/scripts/use_node index 48e7e2858200..695abfbcc4f2 100755 --- a/scripts/use_node +++ b/scripts/use_node @@ -64,7 +64,7 @@ else if [ -d "${OSD_HOME}/bin" ]; then NODE_ERROR_SHOW=true # Not all operating systems can run the latest Node.js and the fallback is for them - "${NODE}" -v 2> /dev/null + "${NODE}" -v > /dev/null 2>&1 if [ $? -ne 0 ] && [ -d "${OSD_HOME}/node/fallback" ]; then NODE="$OSD_HOME/node/fallback/bin/node" fi diff --git a/src/core/public/_variables.scss b/src/core/public/_variables.scss index f77e2b4d2755..9d8077b50ad4 100644 --- a/src/core/public/_variables.scss +++ b/src/core/public/_variables.scss @@ -1,10 +1,3 @@ @import "@elastic/eui/src/global_styling/variables/header"; $osdHeaderOffset: $euiHeaderHeightCompensation; -$osdHeaderBreadcrumbBlueBackground: #b9d9eb; -$osdHeaderBreadcrumbGrayBackground: #d9e1e2; -$osdHeaderBreadcrumbCollapsedLink: #002a3a; -$osdHeaderBreadcrumbPacificSkyDarkestBackground: #163f66; -$osdHeaderBreadcrumbMidnightSkyMediumBackground: #4c636f; -$osdHeaderBreadcrumbMidnightSkyMediumLightColor: #96a0a5; -$osdHeaderBreadcrumbMidnightSkyMediumLightHoverColor: #b0b8bb; diff --git a/src/core/public/chrome/public/assets/round_filter.svg b/src/core/public/chrome/public/assets/round_filter.svg deleted file mode 100644 index 84cf36058553..000000000000 --- a/src/core/public/chrome/public/assets/round_filter.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap index 4c2beb329a98..9068e225c8ba 100644 --- a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap +++ b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap @@ -1888,6 +1888,15 @@ exports[`Header handles visibility and lock changes 1`] = ` "borders": "none", "items": Array [ , ], }, @@ -2325,6 +2335,15 @@ exports[`Header handles visibility and lock changes 1`] = ` className="euiHeaderSectionItem" > @@ -3614,32 +3631,39 @@ exports[`Header handles visibility and lock changes 1`] = ` breadcrumbs={ Array [ Object { - "className": "osdBreadcrumbs", "data-test-subj": "breadcrumb first last", "text": "test", }, ] } - className="euiHeaderBreadcrumbs osdHeaderBreadcrumbs" + className="euiHeaderBreadcrumbs" data-test-subj="breadcrumbs" max={10} truncate={true} > - - + - test - - + + + test + + + + @@ -8837,19 +8861,16 @@ exports[`Header renders condensed header 1`] = ` "thrownError": null, } } - isDarkMode={false} > @@ -8857,32 +8878,39 @@ exports[`Header renders condensed header 1`] = ` breadcrumbs={ Array [ Object { - "className": "osdBreadcrumbs", "data-test-subj": "breadcrumb first", "text": "test", }, ] } - className="euiHeaderBreadcrumbs osdHeaderBreadcrumbs" + className="euiHeaderBreadcrumbs" data-test-subj="breadcrumbs" max={10} truncate={true} > - - + - test - - + + + test + + + + diff --git a/src/core/public/chrome/ui/header/__snapshots__/header_breadcrumbs.test.tsx.snap b/src/core/public/chrome/ui/header/__snapshots__/header_breadcrumbs.test.tsx.snap index 2308839a19a9..5080b23e99c2 100644 --- a/src/core/public/chrome/ui/header/__snapshots__/header_breadcrumbs.test.tsx.snap +++ b/src/core/public/chrome/ui/header/__snapshots__/header_breadcrumbs.test.tsx.snap @@ -3,7 +3,7 @@ exports[`HeaderBreadcrumbs renders updates to the breadcrumbs$ observable 1`] = ` @@ -15,7 +15,7 @@ exports[`HeaderBreadcrumbs renders updates to the breadcrumbs$ observable 2`] = Array [ @@ -23,7 +23,7 @@ Array [ , diff --git a/src/core/public/chrome/ui/header/__snapshots__/header_logo.test.tsx.snap b/src/core/public/chrome/ui/header/__snapshots__/header_logo.test.tsx.snap index 10212cd27561..7e44e456f320 100644 --- a/src/core/public/chrome/ui/header/__snapshots__/header_logo.test.tsx.snap +++ b/src/core/public/chrome/ui/header/__snapshots__/header_logo.test.tsx.snap @@ -1,12 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Header logo in dark mode uses custom logo dark mode URL 1`] = ` +exports[`Header logo when dark-themed uses custom dark-mode logo if branding dark-mode logo is provided 1`] = ` `; -exports[`Header logo in dark mode uses custom logo default mode URL if no dark mode logo provided 1`] = ` +exports[`Header logo when dark-themed uses dashboards' dark logo if branding containing a mark but not a logo is provided 1`] = ` `; -exports[`Header logo in dark mode uses opensearch logo if custom mark provided without logo 1`] = ` +exports[`Header logo when dark-themed uses dashboards' dark logo if branding containing no logo is provided 1`] = ` + + +`; + +exports[`Header logo when dark-themed uses dashboards' dark logo if no branding is provided 1`] = ` + + + `; -exports[`Header logo in dark mode uses opensearch logo if no logo provided 1`] = ` +exports[`Header logo when dark-themed uses default-themed custom logo if branding without dark-mode logo is provided 1`] = ` `; -exports[`Header logo in default mode uses custom logo default mode URL 1`] = ` +exports[`Header logo when default-themed uses custom default-mode logo if branding logo is provided 1`] = ` `; -exports[`Header logo in default mode uses opensearch logo if custom mark provided without logo 1`] = ` +exports[`Header logo when default-themed uses dashboards logo if branding containing a mark but not a logo is provided 1`] = ` `; -exports[`Header logo in default mode uses opensearch logo if no branding provided 1`] = ` +exports[`Header logo when default-themed uses dashboards logo if branding containing no logo is provided 1`] = ` `; -exports[`Header logo in default mode uses opensearch logo if no logo provided 1`] = ` +exports[`Header logo when default-themed uses dashboards logo if no branding is provided 1`] = ` diff --git a/src/core/public/chrome/ui/header/header.tsx b/src/core/public/chrome/ui/header/header.tsx index a78371f4f264..9496b76b9980 100644 --- a/src/core/public/chrome/ui/header/header.tsx +++ b/src/core/public/chrome/ui/header/header.tsx @@ -30,6 +30,7 @@ import { EuiHeader, + EuiHeaderProps, EuiHeaderSection, EuiHeaderSectionItem, EuiHeaderSectionItemButton, @@ -114,7 +115,9 @@ export function Header({ const toggleCollapsibleNavRef = createRef void }>(); const navId = htmlIdGenerator()(); const className = classnames('hide-for-sharing', 'headerGlobalNav'); - const { useExpandedHeader = true, darkMode } = branding; + const { useExpandedHeader = true } = branding; + + const headerTheme: EuiHeaderProps['theme'] = 'dark'; return ( <> @@ -123,7 +126,7 @@ export function Header({ {useExpandedHeader && ( , ], borders: 'none', @@ -202,7 +208,6 @@ export function Header({ diff --git a/src/core/public/chrome/ui/header/header_breadcrumbs.scss b/src/core/public/chrome/ui/header/header_breadcrumbs.scss deleted file mode 100644 index 5ac333e1615a..000000000000 --- a/src/core/public/chrome/ui/header/header_breadcrumbs.scss +++ /dev/null @@ -1,107 +0,0 @@ -@import "../../../../public/variables"; - -$firstBreadcrumbPolygon: polygon( - 0% 0%, - 100% 0%, - calc(100% - #{$euiSizeS}) 100%, - 0% 100% -); -$breadcrumbPolygon: polygon( - $euiSizeS 0%, - 100% 0%, - calc(100% - #{$euiSizeS}) 100%, - 0% 100% -); - -/* remove background color on autofocus for euiBreadcrumbs in Popover */ -.euiBreadcrumbs__inPopover { - .euiLink.euiLink--text:focus { - background: none; - } -} - -.osdHeaderBreadcrumbs { - /* common for both light & dark theme */ - .osdBreadcrumbs, - &--dark .osdBreadcrumbs { - clip-path: $breadcrumbPolygon; - padding: $euiSizeXS - 2.5 $euiSizeL - $euiSizeXS; - - &:first-child { - clip-path: $firstBreadcrumbPolygon; - } - } - - .osdBreadcrumbs { - background-color: $osdHeaderBreadcrumbGrayBackground; - - &:last-child { - background-color: $osdHeaderBreadcrumbBlueBackground; - } - } - - /* only light mode */ - .euiBreadcrumb__collapsedLink { - color: $osdHeaderBreadcrumbCollapsedLink; - background: $euiColorEmptyShade; - } - - .euiLink.euiLink--subdued:focus { - background: $euiColorEmptyShade; - outline: $euiSizeXS - 1 solid $osdHeaderBreadcrumbBlueBackground; - } - - /* common for dark & light mode */ - &, - &--dark { - /* - filter defines a custom filter effect by grouping atomic filter primitives! - here we are using Gaussian filter with stdDeviation for applying - border-radius on clipped background. - */ - filter: url("../../public/assets/round_filter.svg#round"); - - button { - line-height: inherit; - } - - .euiBreadcrumbSeparator { - display: none; - } - - .euiPopover__anchor { - padding: 0 $euiSizeS; - } - - .euiBreadcrumb:not(.euiBreadcrumb:last-child) { - margin-right: 0; - } - } - - /* only dark mode */ - &--dark { - .osdBreadcrumbs { - background-color: $osdHeaderBreadcrumbMidnightSkyMediumBackground; - color: $osdHeaderBreadcrumbMidnightSkyMediumLightColor; - - &:hover { - color: $osdHeaderBreadcrumbMidnightSkyMediumLightHoverColor; - } - - &:last-child { - background-color: $osdHeaderBreadcrumbPacificSkyDarkestBackground; - color: $euiColorFullShade; - } - } - - .euiBreadcrumb__collapsedLink { - color: $euiColorGhost; - background: $euiColorEmptyShade; - } - - .euiLink.euiLink--subdued:focus { - background: $euiColorEmptyShade; - outline: $euiSizeXS - 1 solid $osdHeaderBreadcrumbPacificSkyDarkestBackground; - } - } -} diff --git a/src/core/public/chrome/ui/header/header_breadcrumbs.test.tsx b/src/core/public/chrome/ui/header/header_breadcrumbs.test.tsx index d95e7881cf5a..2008a3f6c493 100644 --- a/src/core/public/chrome/ui/header/header_breadcrumbs.test.tsx +++ b/src/core/public/chrome/ui/header/header_breadcrumbs.test.tsx @@ -38,11 +38,7 @@ describe('HeaderBreadcrumbs', () => { it('renders updates to the breadcrumbs$ observable', () => { const breadcrumbs$ = new BehaviorSubject([{ text: 'First' }]); const wrapper = mount( - + ); expect(wrapper.find('.euiBreadcrumb')).toMatchSnapshot(); diff --git a/src/core/public/chrome/ui/header/header_breadcrumbs.tsx b/src/core/public/chrome/ui/header/header_breadcrumbs.tsx index ba81b61e8bcd..ca50b15d5af6 100644 --- a/src/core/public/chrome/ui/header/header_breadcrumbs.tsx +++ b/src/core/public/chrome/ui/header/header_breadcrumbs.tsx @@ -35,18 +35,14 @@ import useObservable from 'react-use/lib/useObservable'; import { Observable } from 'rxjs'; import { ChromeBreadcrumb } from '../../chrome_service'; -import './header_breadcrumbs.scss'; - interface Props { appTitle$: Observable; breadcrumbs$: Observable; - isDarkMode?: boolean; } -export function HeaderBreadcrumbs({ appTitle$, breadcrumbs$, isDarkMode }: Props) { +export function HeaderBreadcrumbs({ appTitle$, breadcrumbs$ }: Props) { const appTitle = useObservable(appTitle$, 'OpenSearch Dashboards'); const breadcrumbs = useObservable(breadcrumbs$, []); - const className = isDarkMode ? 'osdHeaderBreadcrumbs--dark' : 'osdHeaderBreadcrumbs'; let crumbs = breadcrumbs; if (breadcrumbs.length === 0 && appTitle) { @@ -61,15 +57,7 @@ export function HeaderBreadcrumbs({ appTitle$, breadcrumbs$, isDarkMode }: Props i === 0 && 'first', i === breadcrumbs.length - 1 && 'last' ), - className: classNames('osdBreadcrumbs'), })); - return ( - - ); + return ; } diff --git a/src/core/public/chrome/ui/header/header_logo.test.tsx b/src/core/public/chrome/ui/header/header_logo.test.tsx index 0ac5a03b3589..6d31e71c1f0a 100644 --- a/src/core/public/chrome/ui/header/header_logo.test.tsx +++ b/src/core/public/chrome/ui/header/header_logo.test.tsx @@ -3,22 +3,27 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { EuiHeaderProps } from '@elastic/eui'; import React from 'react'; import { BehaviorSubject } from 'rxjs'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { HeaderLogo, DEFAULT_DARK_LOGO, DEFAULT_LOGO } from './header_logo'; +import { BasePath } from '../../../http/base_path'; +const basePath = new BasePath('/base'); const mockProps = () => ({ href: '/', + basePath, navLinks$: new BehaviorSubject([]), forceNavigation$: new BehaviorSubject(false), navigateToApp: jest.fn(), branding: {}, + theme: 'default' as EuiHeaderProps['theme'], }); -describe('Header logo ', () => { - describe('in default mode ', () => { - it('uses opensearch logo if no branding provided', () => { +describe('Header logo', () => { + describe('when default-themed ', () => { + it('uses dashboards logo if no branding is provided', () => { const branding = {}; const props = { ...mockProps(), @@ -26,14 +31,13 @@ describe('Header logo ', () => { }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); - expect(img.prop('src')).toEqual(`/${DEFAULT_LOGO}`); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_LOGO}`); expect(img.prop('alt')).toEqual(`opensearch dashboards logo`); expect(component).toMatchSnapshot(); }); - it('uses opensearch logo if no logo provided', () => { + it('uses dashboards logo if branding containing no logo is provided', () => { const branding = { - darkMode: false, logo: {}, mark: {}, applicationTitle: 'custom title', @@ -45,14 +49,13 @@ describe('Header logo ', () => { }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); - expect(img.prop('src')).toEqual(`${branding.assetFolderUrl}/${DEFAULT_LOGO}`); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_LOGO}`); expect(img.prop('alt')).toEqual(`${branding.applicationTitle} logo`); expect(component).toMatchSnapshot(); }); - it('uses opensearch logo if custom mark provided without logo', () => { + it('uses dashboards logo if branding containing a mark but not a logo is provided', () => { const branding = { - darkMode: false, logo: {}, mark: { defaultUrl: '/defaultModeMark' }, applicationTitle: 'custom title', @@ -64,14 +67,13 @@ describe('Header logo ', () => { }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); - expect(img.prop('src')).toEqual(`${branding.assetFolderUrl}/${DEFAULT_LOGO}`); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_LOGO}`); expect(img.prop('alt')).toEqual(`${branding.applicationTitle} logo`); expect(component).toMatchSnapshot(); }); - it('uses custom logo default mode URL', () => { + it('uses custom default-mode logo if branding logo is provided', () => { const branding = { - darkMode: false, logo: { defaultUrl: '/defaultModeLogo' }, mark: {}, applicationTitle: 'custom title', @@ -89,10 +91,23 @@ describe('Header logo ', () => { }); }); - describe('in dark mode ', () => { - it('uses opensearch logo if no logo provided', () => { + describe('when dark-themed', () => { + it("uses dashboards' dark logo if no branding is provided", () => { + const branding = {}; + const props = { + ...mockProps(), + branding, + theme: 'dark' as EuiHeaderProps['theme'], + }; + const component = mountWithIntl(); + const img = component.find('.logoContainer img'); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_DARK_LOGO}`); + expect(img.prop('alt')).toEqual(`opensearch dashboards logo`); + expect(component).toMatchSnapshot(); + }); + + it("uses dashboards' dark logo if branding containing no logo is provided", () => { const branding = { - darkMode: true, logo: {}, mark: {}, applicationTitle: 'custom title', @@ -101,17 +116,17 @@ describe('Header logo ', () => { const props = { ...mockProps(), branding, + theme: 'dark' as EuiHeaderProps['theme'], }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); - expect(img.prop('src')).toEqual(`${branding.assetFolderUrl}/${DEFAULT_DARK_LOGO}`); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_DARK_LOGO}`); expect(img.prop('alt')).toEqual(`${branding.applicationTitle} logo`); expect(component).toMatchSnapshot(); }); - it('uses opensearch logo if custom mark provided without logo', () => { + it("uses dashboards' dark logo if branding containing a mark but not a logo is provided", () => { const branding = { - darkMode: true, logo: {}, mark: { defaultUrl: '/defaultModeMark' }, applicationTitle: 'custom title', @@ -120,17 +135,17 @@ describe('Header logo ', () => { const props = { ...mockProps(), branding, + theme: 'dark' as EuiHeaderProps['theme'], }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); - expect(img.prop('src')).toEqual(`${branding.assetFolderUrl}/${DEFAULT_DARK_LOGO}`); + expect(img.prop('src')).toEqual(`${basePath.serverBasePath}/${DEFAULT_DARK_LOGO}`); expect(img.prop('alt')).toEqual(`${branding.applicationTitle} logo`); expect(component).toMatchSnapshot(); }); - it('uses custom logo default mode URL if no dark mode logo provided', () => { + it('uses default-themed custom logo if branding without dark-mode logo is provided', () => { const branding = { - darkMode: true, logo: { defaultUrl: '/defaultModeLogo' }, mark: {}, applicationTitle: 'custom title', @@ -139,6 +154,7 @@ describe('Header logo ', () => { const props = { ...mockProps(), branding, + theme: 'dark' as EuiHeaderProps['theme'], }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); @@ -147,9 +163,8 @@ describe('Header logo ', () => { expect(component).toMatchSnapshot(); }); - it('uses custom logo dark mode URL', () => { + it('uses custom dark-mode logo if branding dark-mode logo is provided', () => { const branding = { - darkMode: true, logo: { defaultUrl: '/defaultModeLogo', darkModeUrl: '/darkModeLogo' }, mark: {}, applicationTitle: 'custom title', @@ -158,6 +173,7 @@ describe('Header logo ', () => { const props = { ...mockProps(), branding, + theme: 'dark' as EuiHeaderProps['theme'], }; const component = mountWithIntl(); const img = component.find('.logoContainer img'); diff --git a/src/core/public/chrome/ui/header/header_logo.tsx b/src/core/public/chrome/ui/header/header_logo.tsx index 26b1783e132b..00de679f5184 100644 --- a/src/core/public/chrome/ui/header/header_logo.tsx +++ b/src/core/public/chrome/ui/header/header_logo.tsx @@ -29,12 +29,14 @@ */ import './header_logo.scss'; +import { EuiHeaderProps } from '@elastic/eui'; import { i18n } from '@osd/i18n'; import React from 'react'; import useObservable from 'react-use/lib/useObservable'; import { Observable } from 'rxjs'; import { ChromeNavLink } from '../..'; import { ChromeBranding } from '../../chrome_service'; +import { HttpStart } from '../../../http'; function findClosestAnchor(element: HTMLElement): HTMLAnchorElement | void { let current = element; @@ -96,32 +98,45 @@ function onClick( } } -export const DEFAULT_DARK_LOGO = 'opensearch_logo_dark_mode.svg'; -export const DEFAULT_LOGO = 'opensearch_logo_default_mode.svg'; +export const DEFAULT_LOGO = 'ui/logos/opensearch_dashboards.svg'; +export const DEFAULT_DARK_LOGO = 'ui/logos/opensearch_dashboards_darkmode.svg'; + interface Props { href: string; navLinks$: Observable; forceNavigation$: Observable; navigateToApp: (appId: string) => void; branding: ChromeBranding; + basePath: HttpStart['basePath']; + // What background is the logo appearing on; this is independent of theme:darkMode + theme?: EuiHeaderProps['theme']; } -export function HeaderLogo({ href, navigateToApp, branding, ...observables }: Props) { +export function HeaderLogo({ + href, + navigateToApp, + branding, + basePath, + theme = 'default', + ...observables +}: Props) { const forceNavigation = useObservable(observables.forceNavigation$, false); const navLinks = useObservable(observables.navLinks$, []); const { - darkMode, - assetFolderUrl = '', - logo = {}, + logo: { defaultUrl: customLogoUrl, darkModeUrl: customDarkLogoUrl } = {}, applicationTitle = 'opensearch dashboards', } = branding; - const { defaultUrl: logoUrl, darkModeUrl: darkLogoUrl } = logo; - const customLogo = darkMode ? darkLogoUrl ?? logoUrl : logoUrl; - const defaultLogo = darkMode ? DEFAULT_DARK_LOGO : DEFAULT_LOGO; + // Attempt to find a suitable custom branded logo before falling back on OSD's + let logoSrc = theme === 'dark' && customDarkLogoUrl ? customDarkLogoUrl : customLogoUrl; + let testSubj = 'customLogo'; + + // If no custom branded logo was set, use OSD's + if (!logoSrc) { + logoSrc = `${basePath.serverBasePath}/${theme === 'dark' ? DEFAULT_DARK_LOGO : DEFAULT_LOGO}`; + testSubj = 'defaultLogo'; + } - const logoSrc = customLogo ? customLogo : `${assetFolderUrl}/${defaultLogo}`; - const testSubj = customLogo ? 'customLogo' : 'defaultLogo'; const alt = `${applicationTitle} logo`; return ( diff --git a/src/core/public/core_app/styles/_globals_v8dark.scss b/src/core/public/core_app/styles/_globals_v8dark.scss index 2b92b49bcbfa..2100e9762cac 100644 --- a/src/core/public/core_app/styles/_globals_v8dark.scss +++ b/src/core/public/core_app/styles/_globals_v8dark.scss @@ -2,6 +2,6 @@ // --- // prepended to all .scss imports (from JS, when v8dark theme selected) -@import "@elastic/eui/src/themes/eui-amsterdam/eui_amsterdam_colors_dark"; -@import "@elastic/eui/src/themes/eui-amsterdam/eui_amsterdam_globals"; +@import "@elastic/eui/src/themes/eui-next/eui_next_colors_dark"; +@import "@elastic/eui/src/themes/eui-next/eui_next_globals"; @import "./mixins"; diff --git a/src/core/public/core_app/styles/_globals_v8light.scss b/src/core/public/core_app/styles/_globals_v8light.scss index 914dbb3e3831..ccc07e14e637 100644 --- a/src/core/public/core_app/styles/_globals_v8light.scss +++ b/src/core/public/core_app/styles/_globals_v8light.scss @@ -2,6 +2,6 @@ // --- // prepended to all .scss imports (from JS, when v8light theme selected) -@import "@elastic/eui/src/themes/eui-amsterdam/eui_amsterdam_colors_light"; -@import "@elastic/eui/src/themes/eui-amsterdam/eui_amsterdam_globals"; +@import "@elastic/eui/src/themes/eui-next/eui_next_colors_light"; +@import "@elastic/eui/src/themes/eui-next/eui_next_globals"; @import "./mixins"; diff --git a/src/core/public/saved_objects/saved_objects_client.test.ts b/src/core/public/saved_objects/saved_objects_client.test.ts index 19b140ad3a12..cc3405f246c5 100644 --- a/src/core/public/saved_objects/saved_objects_client.test.ts +++ b/src/core/public/saved_objects/saved_objects_client.test.ts @@ -471,10 +471,7 @@ describe('SavedObjectsClient', () => { "fields": Array [ "title", ], - "has_reference": Object { - "id": "1", - "type": "reference", - }, + "has_reference": "{\\"id\\":\\"1\\",\\"type\\":\\"reference\\"}", "page": 10, "per_page": 100, "search": "what is the meaning of life?|life", diff --git a/src/core/public/saved_objects/saved_objects_client.ts b/src/core/public/saved_objects/saved_objects_client.ts index d43b75b2171d..6e5482614e40 100644 --- a/src/core/public/saved_objects/saved_objects_client.ts +++ b/src/core/public/saved_objects/saved_objects_client.ts @@ -348,7 +348,13 @@ export class SavedObjectsClient { }; const renamedQuery = renameKeys(renameMap, options); - const query = pick.apply(null, [renamedQuery, ...Object.values(renameMap)]); + const query = pick.apply(null, [renamedQuery, ...Object.values(renameMap)]) as Partial< + Record + >; + + // has_reference needs post-processing since it is an object that needs to be read as + // a query param + if (query.has_reference) query.has_reference = JSON.stringify(query.has_reference); const request: ReturnType = this.savedObjectsFetch(path, { method: 'GET', diff --git a/src/core/public/styles/_ace_overrides.scss b/src/core/public/styles/_ace_overrides.scss index 3f0e3f57d868..5393cdf39894 100644 --- a/src/core/public/styles/_ace_overrides.scss +++ b/src/core/public/styles/_ace_overrides.scss @@ -6,12 +6,14 @@ // In order to override the TM (Textmate) theme of Ace/Brace, everywhere, // it is being scoped by a known outer selector -.application { +.coreSystemRootDomElement { .ace-tm { $aceBackground: tintOrShade($euiColorLightShade, 50%, 0); background-color: $euiColorLightestShade; color: $euiTextColor; + /* stylelint-disable-next-line @osd/stylelint/no_restricted_properties */ + font-family: var(--font-code); .ace_scrollbar { @include euiScrollBar; diff --git a/src/core/server/core_app/assets/default_branding/opensearch_logo_dark_mode.svg b/src/core/server/core_app/assets/default_branding/opensearch_logo_dark_mode.svg deleted file mode 100644 index 5fc96631974a..000000000000 --- a/src/core/server/core_app/assets/default_branding/opensearch_logo_dark_mode.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/core/server/core_app/assets/default_branding/opensearch_logo_default_mode.svg b/src/core/server/core_app/assets/default_branding/opensearch_logo_default_mode.svg deleted file mode 100644 index 9ee816341523..000000000000 --- a/src/core/server/core_app/assets/default_branding/opensearch_logo_default_mode.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/core/server/core_app/assets/fonts/readme.md b/src/core/server/core_app/assets/fonts/readme.md index 55cdd675b1d2..dd77b8b2ce91 100644 --- a/src/core/server/core_app/assets/fonts/readme.md +++ b/src/core/server/core_app/assets/fonts/readme.md @@ -1,6 +1,9 @@ ## Font usage -OpenSearch Dashboards packages two fonts: +OpenSearch Dashboards packages four fonts: + +* [Source Sans 3](https://github.com/adobe-fonts/source-sans) v3.052 +* [Source Code Pro](https://github.com/adobe-fonts/source-code-pro) upright v2.042 and italic v1.062. * [Inter UI](https://rsms.me/inter/) fonts were pulled from their site and are at v3.2 * [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono) was pulled from the Google Fonts website on January 22, 2019. diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/LICENSE.md b/src/core/server/core_app/assets/fonts/source_code_pro/LICENSE.md new file mode 100644 index 000000000000..4cb7aaecdc0f --- /dev/null +++ b/src/core/server/core_app/assets/fonts/source_code_pro/LICENSE.md @@ -0,0 +1,93 @@ +© 2023 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.otf.woff new file mode 100644 index 000000000000..405e907329af Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.ttf.woff2 new file mode 100644 index 000000000000..94986c870b84 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Black.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.otf.woff new file mode 100644 index 000000000000..f483d0e5c538 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.ttf.woff2 new file mode 100644 index 000000000000..b7601922aa32 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BlackIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.otf.woff new file mode 100644 index 000000000000..c3f5524760e0 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.ttf.woff2 new file mode 100644 index 000000000000..5ce97745e3b4 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Bold.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.otf.woff new file mode 100644 index 000000000000..04ed805df11a Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.ttf.woff2 new file mode 100644 index 000000000000..89ec6123d1b5 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-BoldIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.otf.woff new file mode 100644 index 000000000000..1477902a4f28 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.ttf.woff2 new file mode 100644 index 000000000000..45e25c9174fd Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLight.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.otf.woff new file mode 100644 index 000000000000..a2789f8818bc Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.ttf.woff2 new file mode 100644 index 000000000000..b6133c119bf5 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-ExtraLightIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.otf.woff new file mode 100644 index 000000000000..2add4be738e4 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.ttf.woff2 new file mode 100644 index 000000000000..86a225f4a07d Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-It.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.otf.woff new file mode 100644 index 000000000000..4539e374f177 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.ttf.woff2 new file mode 100644 index 000000000000..2a62569287d3 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Light.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.otf.woff new file mode 100644 index 000000000000..9224b22f3dfc Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.ttf.woff2 new file mode 100644 index 000000000000..d64d5710e6e5 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-LightIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.otf.woff new file mode 100644 index 000000000000..03ae712d2a86 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.ttf.woff2 new file mode 100644 index 000000000000..9a9c02eac147 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Medium.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.otf.woff new file mode 100644 index 000000000000..5c7320a76a27 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.ttf.woff2 new file mode 100644 index 000000000000..92b1befaf80a Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-MediumIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.otf.woff new file mode 100644 index 000000000000..31a4a7d83309 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.ttf.woff2 new file mode 100644 index 000000000000..40826f1a6795 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Regular.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.otf.woff new file mode 100644 index 000000000000..c5db9a31d55b Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.ttf.woff2 new file mode 100644 index 000000000000..db50145e5c52 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-Semibold.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.otf.woff b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.otf.woff new file mode 100644 index 000000000000..5022a5337b1b Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.ttf.woff2 new file mode 100644 index 000000000000..89c84391a52c Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodePro-SemiboldIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Italic.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Italic.ttf.woff2 new file mode 100644 index 000000000000..7df879d0881a Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Italic.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Upright.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Upright.ttf.woff2 new file mode 100644 index 000000000000..c4c9147aaf14 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_code_pro/SourceCodeVF-Upright.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/LICENSE.md b/src/core/server/core_app/assets/fonts/source_sans_3/LICENSE.md new file mode 100644 index 000000000000..4cb7aaecdc0f --- /dev/null +++ b/src/core/server/core_app/assets/fonts/source_sans_3/LICENSE.md @@ -0,0 +1,93 @@ +© 2023 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.otf.woff new file mode 100644 index 000000000000..93ee7d9953fd Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.ttf.woff2 new file mode 100644 index 000000000000..e02c23f82d5a Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Black.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.otf.woff new file mode 100644 index 000000000000..b174a639d798 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.ttf.woff2 new file mode 100644 index 000000000000..82eec7583653 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BlackIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.otf.woff new file mode 100644 index 000000000000..6d59fe54bb3e Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.ttf.woff2 new file mode 100644 index 000000000000..916ad418f91a Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Bold.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.otf.woff new file mode 100644 index 000000000000..c6e81dbe7733 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.ttf.woff2 new file mode 100644 index 000000000000..6c14c8babeb9 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-BoldIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.otf.woff new file mode 100644 index 000000000000..e1abd35452bd Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.ttf.woff2 new file mode 100644 index 000000000000..2736d57d5ac2 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLight.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.otf.woff new file mode 100644 index 000000000000..7ac0efa8876b Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.ttf.woff2 new file mode 100644 index 000000000000..61206be234a2 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-ExtraLightIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.otf.woff new file mode 100644 index 000000000000..e855241addf4 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.ttf.woff2 new file mode 100644 index 000000000000..6d9eab98a652 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-It.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.otf.woff new file mode 100644 index 000000000000..5bc57652489e Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.ttf.woff2 new file mode 100644 index 000000000000..0fe3b02cf319 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Light.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.otf.woff new file mode 100644 index 000000000000..3a2c66372885 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.ttf.woff2 new file mode 100644 index 000000000000..8b5ed0d454c8 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-LightIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.otf.woff new file mode 100644 index 000000000000..762a10731a57 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.ttf.woff2 new file mode 100644 index 000000000000..ff95f90d5be2 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Medium.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.otf.woff new file mode 100644 index 000000000000..621c0f548aa4 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.ttf.woff2 new file mode 100644 index 000000000000..3492f7600e90 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-MediumIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.otf.woff new file mode 100644 index 000000000000..30895f79f7ea Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.ttf.woff2 new file mode 100644 index 000000000000..e2401aa9f8a0 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Regular.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.otf.woff new file mode 100644 index 000000000000..e5483931521c Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.ttf.woff2 new file mode 100644 index 000000000000..a9aced0785d9 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-Semibold.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.otf.woff b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.otf.woff new file mode 100644 index 000000000000..ee41e959e944 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.otf.woff differ diff --git a/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.ttf.woff2 b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.ttf.woff2 new file mode 100644 index 000000000000..1556ee303c83 Binary files /dev/null and b/src/core/server/core_app/assets/fonts/source_sans_3/SourceSans3-SemiboldIt.ttf.woff2 differ diff --git a/src/core/server/core_app/assets/logos/opensearch_dashboards.svg b/src/core/server/core_app/assets/logos/opensearch_dashboards.svg new file mode 100644 index 000000000000..bb85dcdd10ed --- /dev/null +++ b/src/core/server/core_app/assets/logos/opensearch_dashboards.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/core/server/core_app/assets/logos/opensearch_dashboards_darkmode.svg b/src/core/server/core_app/assets/logos/opensearch_dashboards_darkmode.svg new file mode 100644 index 000000000000..ba023b5b9a37 --- /dev/null +++ b/src/core/server/core_app/assets/logos/opensearch_dashboards_darkmode.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/core/server/legacy/legacy_service.ts b/src/core/server/legacy/legacy_service.ts index ae7e85b98d67..a48ff12e859a 100644 --- a/src/core/server/legacy/legacy_service.ts +++ b/src/core/server/legacy/legacy_service.ts @@ -275,6 +275,7 @@ export class LegacyService implements CoreService { addClientWrapper: setupDeps.core.savedObjects.addClientWrapper, registerType: setupDeps.core.savedObjects.registerType, getImportExportObjectLimit: setupDeps.core.savedObjects.getImportExportObjectLimit, + setRepositoryFactoryProvider: setupDeps.core.savedObjects.setRepositoryFactoryProvider, }, status: { isStatusPageAnonymous: setupDeps.core.status.isStatusPageAnonymous, diff --git a/src/core/server/plugins/plugin_context.ts b/src/core/server/plugins/plugin_context.ts index 521a8dd2f7b0..7782fd93041e 100644 --- a/src/core/server/plugins/plugin_context.ts +++ b/src/core/server/plugins/plugin_context.ts @@ -204,6 +204,7 @@ export function createPluginSetupContext( addClientWrapper: deps.savedObjects.addClientWrapper, registerType: deps.savedObjects.registerType, getImportExportObjectLimit: deps.savedObjects.getImportExportObjectLimit, + setRepositoryFactoryProvider: deps.savedObjects.setRepositoryFactoryProvider, }, status: { core$: deps.status.core$, diff --git a/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap b/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap index 1913a972ab8c..ad92d759a832 100644 --- a/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap +++ b/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap @@ -106,7 +106,7 @@ Object { } `; -exports[`RenderingService setup() render() renders "core" page driven by settings 1`] = ` +exports[`RenderingService setup() render() renders "core" page driven by defaults 1`] = ` Object { "anonymousStatusPage": false, "basePath": "/mock-server-basepath", @@ -148,6 +148,59 @@ Object { "name": "title", }, }, + "user": Object {}, + }, + }, + "serverBasePath": "/mock-server-basepath", + "survey": "https://survey.opensearch.org", + "uiPlugins": Array [], + "vars": Object {}, + "version": Any, +} +`; + +exports[`RenderingService setup() render() renders "core" page driven by settings 1`] = ` +Object { + "anonymousStatusPage": false, + "basePath": "/mock-server-basepath", + "branch": Any, + "branding": Object { + "applicationTitle": "OpenSearch Dashboards", + "assetFolderUrl": "/mock-server-basepath/ui/default_branding", + "darkMode": true, + "loadingLogo": Object {}, + "logo": Object {}, + "mark": Object {}, + "useExpandedHeader": true, + }, + "buildNumber": Any, + "csp": Object { + "warnLegacyBrowsers": true, + }, + "env": Object { + "mode": Object { + "dev": Any, + "name": Any, + "prod": Any, + }, + "packageInfo": Object { + "branch": Any, + "buildNum": Any, + "buildSha": Any, + "dist": Any, + "version": Any, + }, + }, + "i18n": Object { + "translationsUrl": "/mock-server-basepath/translations/en.json", + }, + "legacyMetadata": Object { + "uiSettings": Object { + "defaults": Object { + "theme:darkMode": Object { + "value": false, + }, + }, "user": Object { "theme:darkMode": Object { "userValue": true, @@ -216,6 +269,59 @@ Object { } `; +exports[`RenderingService setup() render() renders "core" page with no defaults or overrides 1`] = ` +Object { + "anonymousStatusPage": false, + "basePath": "/mock-server-basepath", + "branch": Any, + "branding": Object { + "applicationTitle": "OpenSearch Dashboards", + "assetFolderUrl": "/mock-server-basepath/ui/default_branding", + "darkMode": false, + "loadingLogo": Object {}, + "logo": Object {}, + "mark": Object {}, + "useExpandedHeader": true, + }, + "buildNumber": Any, + "csp": Object { + "warnLegacyBrowsers": true, + }, + "env": Object { + "mode": Object { + "dev": Any, + "name": Any, + "prod": Any, + }, + "packageInfo": Object { + "branch": Any, + "buildNum": Any, + "buildSha": Any, + "dist": Any, + "version": Any, + }, + }, + "i18n": Object { + "translationsUrl": "/mock-server-basepath/translations/en.json", + }, + "legacyMetadata": Object { + "uiSettings": Object { + "defaults": Object { + "registered": Object { + "name": "title", + }, + }, + "user": Object {}, + }, + }, + "serverBasePath": "/mock-server-basepath", + "survey": "https://survey.opensearch.org", + "uiPlugins": Array [], + "vars": Object {}, + "version": Any, +} +`; + exports[`RenderingService setup() render() renders "core" with excluded user settings 1`] = ` Object { "anonymousStatusPage": false, diff --git a/src/core/server/rendering/rendering_service.test.ts b/src/core/server/rendering/rendering_service.test.ts index 725a02d75d52..56a39915e73c 100644 --- a/src/core/server/rendering/rendering_service.test.ts +++ b/src/core/server/rendering/rendering_service.test.ts @@ -106,8 +106,22 @@ describe('RenderingService', () => { expect(data).toMatchSnapshot(INJECTED_METADATA); }); + it('renders "core" page driven by defaults', async () => { + uiSettings.getUserProvided.mockResolvedValue({ 'theme:darkMode': { userValue: false } }); + uiSettings.getOverrideOrDefault.mockImplementation((name) => name === 'theme:darkMode'); + const content = await render(createOpenSearchDashboardsRequest(), uiSettings, { + includeUserSettings: false, + }); + const dom = load(content); + const data = JSON.parse(dom('osd-injected-metadata').attr('data') || ''); + + expect(uiSettings.getUserProvided).not.toHaveBeenCalled(); + expect(data).toMatchSnapshot(INJECTED_METADATA); + }); + it('renders "core" page driven by settings', async () => { uiSettings.getUserProvided.mockResolvedValue({ 'theme:darkMode': { userValue: true } }); + uiSettings.getRegistered.mockReturnValue({ 'theme:darkMode': { value: false } }); const content = await render(createOpenSearchDashboardsRequest(), uiSettings); const dom = load(content); const data = JSON.parse(dom('osd-injected-metadata').attr('data') || ''); @@ -115,6 +129,21 @@ describe('RenderingService', () => { expect(data).toMatchSnapshot(INJECTED_METADATA); }); + it('renders "core" page with no defaults or overrides', async () => { + uiSettings.getUserProvided.mockResolvedValue({}); + uiSettings.getOverrideOrDefault.mockImplementation((name) => + name === 'theme:darkMode' ? undefined : false + ); + const content = await render(createOpenSearchDashboardsRequest(), uiSettings, { + includeUserSettings: false, + }); + const dom = load(content); + const data = JSON.parse(dom('osd-injected-metadata').attr('data') || ''); + + expect(uiSettings.getUserProvided).not.toHaveBeenCalled(); + expect(data).toMatchSnapshot(INJECTED_METADATA); + }); + it('renders "core" with excluded user settings', async () => { const content = await render(createOpenSearchDashboardsRequest(), uiSettings, { includeUserSettings: false, diff --git a/src/core/server/rendering/rendering_service.tsx b/src/core/server/rendering/rendering_service.tsx index 16430739bd04..c7c03c1eb72c 100644 --- a/src/core/server/rendering/rendering_service.tsx +++ b/src/core/server/rendering/rendering_service.tsx @@ -95,9 +95,17 @@ export class RenderingService { defaults: uiSettings.getRegistered(), user: includeUserSettings ? await uiSettings.getUserProvided() : {}, }; - const darkMode = settings.user?.['theme:darkMode']?.userValue - ? Boolean(settings.user['theme:darkMode'].userValue) - : false; + // Cannot use `uiSettings.get()` since a user might not be authenticated + const darkMode = + (settings.user?.['theme:darkMode']?.userValue ?? + uiSettings.getOverrideOrDefault('theme:darkMode')) || + false; + + // At the very least, the schema should define a default theme; the '' will be unreachable + const themeVersion = + (settings.user?.['theme:version']?.userValue ?? + uiSettings.getOverrideOrDefault('theme:version')) || + ''; const brandingAssignment = await this.assignBrandingConfig( darkMode, @@ -111,6 +119,7 @@ export class RenderingService { i18n: i18n.translate, locale: i18n.getLocale(), darkMode, + themeVersion, injectedMetadata: { version: env.packageInfo.version, buildNumber: env.packageInfo.buildNum, diff --git a/src/core/server/rendering/types.ts b/src/core/server/rendering/types.ts index 9f0db46074b2..45821c2b8228 100644 --- a/src/core/server/rendering/types.ts +++ b/src/core/server/rendering/types.ts @@ -46,6 +46,7 @@ export interface RenderingMetadata { i18n: typeof i18n.translate; locale: string; darkMode: boolean; + themeVersion: string; injectedMetadata: { version: string; buildNumber: number; diff --git a/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap b/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap index 12cea1e9b430..87a00f601a44 100644 --- a/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap +++ b/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap @@ -14,7 +14,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -152,7 +152,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -290,7 +290,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -431,7 +431,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -572,7 +572,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -733,7 +733,6 @@ Array [ custom title , - null, , + null, , @@ -873,7 +873,6 @@ Array [ custom title , - null, , + null, , @@ -1016,7 +1016,6 @@ Array [ custom title , - null, , + null, , @@ -1175,7 +1175,6 @@ Array [ name="viewport" />, , - null, , + null, , @@ -1334,7 +1334,6 @@ Array [ name="viewport" />, , - null, , + null, , diff --git a/src/core/server/rendering/views/fonts.tsx b/src/core/server/rendering/views/fonts.tsx index b3e95ed417ef..3f2196b56558 100644 --- a/src/core/server/rendering/views/fonts.tsx +++ b/src/core/server/rendering/views/fonts.tsx @@ -36,6 +36,7 @@ import { RenderingMetadata } from '../types'; interface Props { url: RenderingMetadata['uiPublicUrl']; + theme: string; } interface FontFace { @@ -49,7 +50,228 @@ interface FontFace { }>; } -export const Fonts: FunctionComponent = ({ url }) => { +export const Fonts: FunctionComponent = ({ url, theme }) => { + // For next theme + const sourceSans3: FontFace = { + family: 'Source Sans 3', + variants: [ + { + weight: 200, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-ExtraLight.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-ExtraLight.otf.woff`, + ], + }, + { + weight: 200, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-ExtraLightIt.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-ExtraLightIt.otf.woff`, + ], + }, + { + weight: 300, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-Light.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-Light.otf.woff`, + ], + }, + { + weight: 300, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-LightIt.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-LightIt.otf.woff`, + ], + }, + { + weight: 400, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-Regular.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-Regular.otf.woff`, + ], + }, + { + weight: 400, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-It.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-It.otf.woff`, + ], + }, + { + weight: 600, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-Semibold.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-Semibold.otf.woff`, + ], + }, + { + weight: 600, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-SemiboldIt.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-SemiboldIt.otf.woff`, + ], + }, + { + weight: 700, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-Bold.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-Bold.otf.woff`, + ], + }, + { + weight: 700, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-BoldIt.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-BoldIt.otf.woff`, + ], + }, + { + weight: 900, + style: 'normal', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-Black.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-Black.otf.woff`, + ], + }, + { + weight: 900, + style: 'italic', + sources: [ + `${url}/fonts/source_sans_3/SourceSans3-BlackIt.ttf.woff2`, + `${url}/fonts/source_sans_3/SourceSans3-BlackIt.otf.woff`, + ], + }, + ], + }; + const sourceCodePro: FontFace = { + family: 'Source Code Pro', + variants: [ + { + weight: 200, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-ExtraLight.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-ExtraLight.otf.woff`, + ], + }, + { + weight: 200, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-ExtraLightIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-ExtraLightIt.otf.woff`, + ], + }, + { + weight: 300, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Light.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Light.otf.woff`, + ], + }, + { + weight: 300, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-LightIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-LightIt.otf.woff`, + ], + }, + { + weight: 400, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Regular.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Regular.otf.woff`, + ], + }, + { + weight: 400, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-It.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-It.otf.woff`, + ], + }, + { + weight: 500, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Medium.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Medium.otf.woff`, + ], + }, + { + weight: 500, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-MediumIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-MediumIt.otf.woff`, + ], + }, + { + weight: 600, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Semibold.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Semibold.otf.woff`, + ], + }, + { + weight: 600, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-SemiboldIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-SemiboldIt.otf.woff`, + ], + }, + { + weight: 700, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Bold.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Bold.otf.woff`, + ], + }, + { + weight: 700, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-BoldIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-BoldIt.otf.woff`, + ], + }, + { + weight: 900, + style: 'normal', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-Black.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-Black.otf.woff`, + ], + }, + { + weight: 900, + style: 'italic', + sources: [ + `${url}/fonts/source_code_pro/SourceCodePro-BlackIt.ttf.woff2`, + `${url}/fonts/source_code_pro/SourceCodePro-BlackIt.otf.woff`, + ], + }, + ], + }; + + // ToDo [NEW THEME]: Remove these fonts and their files when the theme is released: https://github.com/opensearch-project/OpenSearch-Dashboards/issues/4301 const interUi: FontFace = { family: 'Inter UI', variants: [ @@ -252,94 +474,119 @@ export const Fonts: FunctionComponent = ({ url }) => { ], }; - return ( -