зеркало из https://github.com/microsoft/fast.git
4699e77715
* feat(compiler): remove tree walker & switch to structural target lookup
* fix(compiler): don't add unnecessary descriptors to compile result
* fix(compiler): correct extraction of child index from parent id
* feat(compiler): unify host and view factories
* feat(view): unify behavior creation with first bind; clean up compiler
* chore(template): clean up imports
* chore(templating): clean up imports
* refactor(view): cleanup view internals and remove range
* feat(binding): enable control over className vs. classList behavior
* docs: add notes on changes in FAST Element 2
* feat: add generic types to views and templates
* refactor: internal cleanup and fixing router to match new APIs.
* feat: improve types related to behaviors
* refactor: clean up styles code a bit
* feat: introduce ViewBehavior to enable stateless behaviors
* fix: remove unnecessary render based on element id
* perf: switch targetId to set and use normal props for r/h lookups
* refactor(observable): tighten up some code
* refactor: tighten up notifier
* refactor: clean up array observer
* refactor: clean up class binding scenarios
* refactor: clean up more internal of css and observable
* feat: switch ref over to the new stateless model for view behaviors
* refactor: cleanup in node observation
* feat: createCustomAttributePlaceholder no longer requires an attr name
* feat: update children and slotted to share instances
* refactor: dry up ref and node observation directives
* refactor: improve compiler internals by combining context and result
* feat: wip updating binding system to support modes and configs
* fix: correct handle change signature for content binding
* feat: enable interpolating non-strings as one time bindings in templates
* refactor: remove duplication in one time event
* refactor: reduce some duplication when creating binding configs
* refactor: reduce duplication and simplify new binding system
* refactor: improve compiler/directive protocol
* refactor: rename Notifier#source to Notifier#subject
* refactor: reduce duplication
* fix: state issue with token list bindings
* refactor: clean up types and remove internals from public export
* refactor: centralize common type checks
* refactor: centralize id generation
* refactor: only export intended types for directives
* refactor: internal code reduction
* refactor: consolidate more unique id logic
* chore: fix module import path
* feat: signal bindings and refactoring of binding type APIs
* refactor(controller): minor internal improvements
* refactor(attributes): reduce some duplication
* fix(binding): bug in location of update target
* refactor: modernize the splice code
* refactor: small simplification in array change records
* perf: use less memory and reduce code for signal bindings
* chore: set up SSR package (#5589)
* project files and starting to set up test infrastructure
* incorporating ts project references and getting tests working
* adding .npmignore to ingore tests and server
* adding readmes
* Update packages/web-components/fast-ssr/package.json
Co-authored-by: Chris Holt <chhol@microsoft.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Chris Holt <chhol@microsoft.com>
* feat: expose fast-element as a module package to NodeJS (#5601)
* add lint rule to enforce file extensions in imports
* declare fast-element as a ESModule package
* convert eslintrc to a commonjs module
* adding file extensions to import paths
* fixing accidently modified string
* fixing build processes
* revert change
* Change files
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* Add the fast-style web component (#5600)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This branch adds the following:
- A FAST Style element that will hydrate styles client side
- A webpack config that will build the minimal JS for the logic for this web component so that the file `fast-style.min.js` can be referred to in server side generated HTML
### 🎫 Issues
<!---
* List and link relevant issues here.
-->
Closes #5575
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
If you run the test server after building all the necessary files, you can navigate to `localhost:8080/fast-style` and see the component working there. One thing is the fixture uses `shadowroot="open"` to be able to see which styles are applied to nested elements during Playwright testing. This does not need the case for actual implementation, the shadowroot can be closed, this has been manually verified.
## 📑 Test Plan
<!---
Please provide a summary of the tests affected by this work and any unique strategies employed in testing the features/fixes.
-->
The added tests are Playwright tests, I'll let reviewers comment as to whether more tests are needed, this however tests the base case of applying styles to the container of the fast-style web component.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [x] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [ ] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
## ⏭ Next Steps
<!---
If there is relevant follow-up work to this PR, please list any existing issues or provide brief descriptions of what you would like to do next.
-->
- Integrate the FASTStyle wc to the HTML renderer #5576
* Pin the checkchange to the feature branch (#5611)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change will pin the `checkchange` check in the github workflow to check for changes against the `features/fast-element-2` branch. Since the branch should only be checking PRs against its contents and not the default branch this is the current workaround for checking for changefiles against non-default branches. This change must be removed prior to inclusion to the default branch.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
## ⏭ Next Steps
<!---
If there is relevant follow-up work to this PR, please list any existing issues or provide brief descriptions of what you would like to do next.
-->
- Add an issue to remove this change in the feature branch tracking project (https://github.com/microsoft/fast/issues/5612)
* Added change files for FAST Element 2 (#5610)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
These are the necessary change files for the current state of work for FAST Element 2.0. Subsequent changes will require a change file after a PR has been added to pin the `checkchange` to the feature branch.
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
Read the change files carefully and see if you agree with the wording/change type/package/etc.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [x] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [ ] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
## ⏭ Next Steps
<!---
If there is relevant follow-up work to this PR, please list any existing issues or provide brief descriptions of what you would like to do next.
-->
- Add a PR to pin `checkchange` to the feature branch (#5611)
- Add an issue to remove `checkchange` pinning once feature branch work is complete (https://github.com/microsoft/fast/issues/5612)
* Add branch pointing to config instead of package scripts (#5616)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change moves the branch specificity to beachball config to allow `yarn change` to target the feature branch and also removes the restriction on "major" change updates.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* feat: enable synchronous dom updates for SSR (#5615)
* feat: enable synchronous dom updates for SSR
* Add branch pointing to config instead of package scripts (#5616)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change moves the branch specificity to beachball config to allow `yarn change` to target the feature branch and also removes the restriction on "major" change updates.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* feat: enable synchronous dom updates for SSR
* Change files
* Change files
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: adds FASTElementRenderer to fast-ssr (#5613)
* adds FASTElementRenderer as a ElementRenderer implementation
* adding test
* adding eslint for file extensions
* re-structure tests to better support dependency structures
* Fixing tests for FASTElementRenderer.matchesClass
* adding code comments
* Update packages/web-components/fast-ssr/src/element-renderer/element-renderer.ts
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
* Added prettier to fast-ssr package (#5617)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change adds prettier to the `@microsoft/fast-ssr` package.
Note: I ran prettier after the changes and it looks like the current files are gtg. This is more for future proofing.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* Fixed linting errors and warnings (#5619)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change does the following:
- Allow `no-non-null-assertion`
- Fixes all other warnings and errors
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
@EisenbergEffect since these changes affect your work please take a close look, most of the changes are benign but I did move code around to best minimize ignoring the no-use-before-define issues.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* Added watch script and chokidar (#5621)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This PR adds `chokidar` so that we can watch files and re-run the playwright tests. Playwright does not currently have a watcher for this purpose so `chokidar-cli` was added to facilitate this.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* feat: enable pluggable style handling strategies (#5623)
* feat: enable pluggable style handling strategies
* refactor: move unnecessary internal function
* test: fix up style tests based on new API
* refactor: improve the style strategy interface
* Change files
* refactor: improve strategy factory design via constructible types
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* Updated api-extractor version and exported markdown (#5640)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
When running `npm run build` inside `@microsoft/fast-element` package, the following error is encountered:
`Error: Error parsing tsconfig.json content: Unknown compiler option 'importsNotUsedAsValues'.`
This happens because running `api-extractor` happens as a final step in the `build`, and the reason this error occurs is that the currently pinned version `typescript` used by `api-extractor` is below `3.8.0` when `importsNotUsedAsValues` was introduced as a flag. This change updates the version, we now have no errors, but the following warnings with this change:
```
Warning: You have changed the public API signature for this project. Updating docs/api-report.md
Warning: dist/dts/dom.d.ts:70:8 - (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
Warning: dist/dts/observation/array-change-records.d.ts:6:33 - (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
Warning: dist/dts/observation/array-change-records.d.ts:6:6 - (tsdoc-html-tag-missing-greater-than) The HTML tag has invalid syntax: Expecting an attribute or ">" or "/>"
Warning: dist/dts/templating/binding.d.ts:4:1 - (ae-missing-release-tag) "BindingBehaviorFactory" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:7:1 - (ae-missing-release-tag) "BindingType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:9:1 - (ae-missing-release-tag) "BindingMode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:17:1 - (ae-missing-release-tag) "BindingConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:23:1 - (ae-missing-release-tag) "DefaultBindingOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:26:22 - (ae-missing-release-tag) "onChange" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:27:22 - (ae-missing-release-tag) "oneTime" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/binding.d.ts:43:1 - (ae-missing-release-tag) "bind" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Warning: dist/dts/templating/html-directive.d.ts:84:1 - (ae-missing-release-tag) "InlinableHTMLDirective" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
```
### 🎫 Issues
<!---
* List and link relevant issues here.
-->
Partially addresses #5641
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
Please take a look at the above warnings and determine if these are legitimate and we should proceed with the version update.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* Update the fast-router with the updates to fast-element APIs (#5643)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This change updates `@microsoft/fast-router` so that it uses the new APIs available from `@microsoft/fast-element`. This unblocks part of the `yarn install` errors currently happening in the build gate.
### 🎫 Issues
<!---
* List and link relevant issues here.
-->
Relates to #5641
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
@EisenbergEffect could you take a look at these changes and verify this is the intended use for the updated `ElementStyles` and `ViewBehaviorTargets`.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* fix: add null value as acceptable value to FASTElement.attributeChangedCallback (#5642)
* allow null values in attributeChangedCallback
* Change files
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* Updated to use the new FAST element 2.0 APIs for creating behaviors and creating element styles (#5648)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This work updates components in `@microsoft/fast-foundation` to use updated APIs from FAST Element 2.0.
### 🎫 Issues
<!---
* List and link relevant issues here.
-->
Relates to #5641
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [x] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [ ] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* Update the API report based on foundation updates for FAST element 2.0 (#5650)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This api report update comes after the work in #5648 where the installation was finally able to happen, this now allowed for the updates in FAST element 2.0 to update the api report for `@microsoft/fast-components`.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [x] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* feat: expose official Markup and Parser APIs (#5649)
* feat: expose official Markup and Parser APIs
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* Fixed an updated export from FAST element 2.0 (#5653)
* Fixed an updated export from FAST element 2.0
* Change files
* fix: prevent duplicative array observation patch (FE2) (#5656)
* fix: prevent duplicative array observation patch
* Change files
* refactor: re-organize array observer code
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fix: defend against for/in use on arrays (FE2) (#5662)
* fix: defend against for/in use on arrays
* Change files
* test: added some basic tests for array observers
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* docs: add alpha tags to unfinished binding APIs (#5665)
* docs: add alpha tags to unfinished binding APIs
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* refactor: move template/style resolution to lazy getter (#5657)
* refactor: move template/style resolution to lazy getter
Enables access in SSR scenarios to the fully resolved template and styles.
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: handle existing shadow roots when upgrading (#5679)
* feat: handle existing shadow roots when upgrading
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* Adds TemplateParser to SSR package (#5645)
* adding template-renderer feature and spec files
* adding DOM emission configuration to TemplateRenderer
* adding render function to TemplateRenderer
* adding method description to TemplateRenderer.render
* add template parser files and entry functions
* parseTemplateToOpCodes should throw when used with an HTMLTemplateElement template
* change script structure to allow breakpoints to percist in files from build to build
* adding parse5 HTML parser
* generate AST from ViewTemplate
* implement AST traverser
* adding node type checks
* implement parser class that acts as a node visitor for node traversal
* adding flushTo method to TemplateParser
* implement completion method
* writing a few test fixtures for pure HTML templates
* add directive type and parsing test
* move template-parser files to own directory
* adding tests for directive ops
* fix-up after rebase
* emit op-codes for custom elements
* adding attribute binding ops
* formatting
* adding tests for custom element attribute bindings
* organize imports
* fix processing of interpolated bindings and add test
* Change files
* Update packages/web-components/fast-ssr/src/template-parser/template-parser.ts
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
* rename ast variable
* remove dependency on Markup.marker
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
* Added specification for a FAST CLI and project initialization package (#5669)
# Pull Request
## 📖 Description
<!---
Provide some background and a description of your work.
What problem does this change solve?
Is this a breaking change, chore, fix, feature, etc?
-->
This specification is based on the need for FAST to have a CLI for accelerating workflows and provide an easy way to initialize a project.
### 🎫 Issues
<!---
* List and link relevant issues here.
-->
Related to https://github.com/microsoft/fast/issues/5578
## 👩💻 Reviewer Notes
<!---
Provide some notes for reviewers to help them provide targeted feedback and testing.
Do you recommend a smoke test for this PR? What steps should be followed?
Are there particular areas of the code the reviewer should focus on?
-->
I believe some work has been done on this already but the priorities have shifted around, this is my interpretation for what the requirements are and what generally the goals should be. Please give this a thorough read and determine if this captures all requirements, an MVP roadmap is included at the bottom. This is targeting the feature branch including FAST element 2.0 and the server side rendering work as I believe these are related.
## ✅ Checklist
### General
<!--- Review the list and put an x in the boxes that apply. -->
- [ ] I have included a change request file using `$ yarn change`
- [ ] I have added tests for my changes.
- [ ] I have tested my changes.
- [x] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/Microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://www.fast.design/docs/community/code-of-conduct/#our-standards) for this project.
* Add fast command buffer (#5708)
* Adds TemplateOp to SSR template parser (#5706)
* adding template element open and close ops
* emit template open and close codes from template parser
* fleshes out template op emission
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: enable multiple instances of fast-element on a page at once (#5718)
* feat: enable multiple instances of fast-element on a page at once
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* refactor: enable pluggable template compiler for SSR scenarios (#5722)
* refactor: enable pluggable template compiler for SSR scenarios
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: create unified API for parsing markers (#5727)
* feat: create unified API for parsing markers
* fix: correct logic for inserting stable first node
* Change files
* refactor: tersify compiler comment first node check
* fix: correct some API types on the Parser
* change directive op type to use return type of Parser.aggregate()
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: aspected html directive exposes metadata (#5739)
* feat: aspected html directive exposes metadata
* test: expand tests around aspected directives
* Change files
* chore: add missing comment to change file
* replace Parser with Compiler
* fix: remove dependency on this from markup helpers
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* refactor: extract polyfill and polyfill-like code to an optional module (#5752)
* refactor: extract polyfill and polyfill-like code to an optional module
* Change files
* fix: correct build break in fast-foundation from removing $global
* fix: update templates to use classList and fix classList bug
* Change files
* feat: require trusted types for bindings to innerHtml & move core policy
* fix: bug that arises when there are real trusted types
* refactor: minor internal cleanup in the polyfills
* fix: remove polyfill external module dependency
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: implement template renderer infrastructure (#5698)
* implement factory fn to create TemplateRenderer and ElementRenderer
* rename index to exports
* adding default render info object
* adding initial directive rendering
* adds initial custom element rendering
* add directive renderers
* add renderInfo to DirectiveRenderer
* use default directive renderers
* adding attribute binding tests
* ensure attributes don't get emitted twice for custom elements
* Adding internal function to render op codes so that we can omit template elements when rendering custom element templates
* emit template open and close codes from template parser
* implement FAST parser changes and fix tests
* working AspectedHTMLDirective changes into branch
* naive implementation of custom element template rendering
* adds rendering of template op code
* progress on elmeent rendering
* fixing custom element attribute rendering bug
* Change files
* adding boolean and property binding test
* fix bug preventing template elements from being parsed
* add failing template nesting test
* update parsing of content nodes to correctly render interpolated templates
* fix API report and formatting
* adding repeater rendering
* adding directive implementations for Ref, Slotted, and Children
* clean up op types to reduce rendant information
* remove commented code that is no longer needed
* adding tests for ref, slotted, and children
* re-use noop function for noop directives
* cache length of arrays in for loops
* adding style tests
* implementing style renderer
* remove 'data' from style id name
* adding tests
* renaming files to align with current conventions
* update attachShadow signature
* adding classList support
* fixing tests and supporting string types
* removing comment that is a non-concern
* add playwright install step to ci
* add browser path to ci script
* change install script to install at the package level
* update playwright
* Change files
* fixing test
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: add warn/error message infrastructure (#5776)
* feat: add warn/error message infrastructure
* Change files
* feat: add sideEffects files and basic debug tests
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: new execution context design (#5800)
* refactor: new design for execution context
* feat: add two new event helpers to the execution context and tests
* fix: wip update types to match new context apis
* fix: update foundation and components template types
* Change files
* fix: update template type in fast-website
* fix: update site components for new template types
* fix: add missing api updates
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fixes build-break caused by rebase
* feat: new HTMLDirective design (#5826)
* refactor: clean up array observer
* refactor: modernize the splice code
* chore: set up SSR package (#5589)
* project files and starting to set up test infrastructure
* incorporating ts project references and getting tests working
* adding .npmignore to ingore tests and server
* adding readmes
* Update packages/web-components/fast-ssr/package.json
Co-authored-by: Chris Holt <chhol@microsoft.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Chris Holt <chhol@microsoft.com>
* feat: enable multiple instances of fast-element on a page at once (#5718)
* feat: enable multiple instances of fast-element on a page at once
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* refactor: extract polyfill and polyfill-like code to an optional module (#5752)
* refactor: extract polyfill and polyfill-like code to an optional module
* Change files
* fix: correct build break in fast-foundation from removing $global
* fix: update templates to use classList and fix classList bug
* Change files
* feat: require trusted types for bindings to innerHtml & move core policy
* fix: bug that arises when there are real trusted types
* refactor: minor internal cleanup in the polyfills
* fix: remove polyfill external module dependency
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: implement template renderer infrastructure (#5698)
* implement factory fn to create TemplateRenderer and ElementRenderer
* rename index to exports
* adding default render info object
* adding initial directive rendering
* adds initial custom element rendering
* add directive renderers
* add renderInfo to DirectiveRenderer
* use default directive renderers
* adding attribute binding tests
* ensure attributes don't get emitted twice for custom elements
* Adding internal function to render op codes so that we can omit template elements when rendering custom element templates
* emit template open and close codes from template parser
* implement FAST parser changes and fix tests
* working AspectedHTMLDirective changes into branch
* naive implementation of custom element template rendering
* adds rendering of template op code
* progress on elmeent rendering
* fixing custom element attribute rendering bug
* Change files
* adding boolean and property binding test
* fix bug preventing template elements from being parsed
* add failing template nesting test
* update parsing of content nodes to correctly render interpolated templates
* fix API report and formatting
* adding repeater rendering
* adding directive implementations for Ref, Slotted, and Children
* clean up op types to reduce rendant information
* remove commented code that is no longer needed
* adding tests for ref, slotted, and children
* re-use noop function for noop directives
* cache length of arrays in for loops
* adding style tests
* implementing style renderer
* remove 'data' from style id name
* adding tests
* renaming files to align with current conventions
* update attachShadow signature
* adding classList support
* fixing tests and supporting string types
* removing comment that is a non-concern
* add playwright install step to ci
* add browser path to ci script
* change install script to install at the package level
* update playwright
* Change files
* fixing test
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: new execution context design (#5800)
* refactor: new design for execution context
* feat: add two new event helpers to the execution context and tests
* fix: wip update types to match new context apis
* fix: update foundation and components template types
* Change files
* fix: update template type in fast-website
* fix: update site components for new template types
* fix: add missing api updates
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: new HTMLDirective API
* feat: new directive registration/identification model
* refactor: refine design/implementation of new directive aproach
* refactor: clean up comments, interfaces, types for directives/registries
* fix: update foundation to new APIs
* fix: update router to new directive APIs.
* fix: update ssr to new directive APIs
* refactor: clean up ssr switch to new directive APIs
* fix: update React wrapper lib to use latest APIs
* Change files
* fix: post rebase issues
* fix: update reflectAttributes directive to new directive APIs
* test: add more tests to capture new html/directive aspect scenarios
* Change files
* chore: run prettier on foundation
* Update packages/web-components/fast-ssr/src/template-parser/template-parser.spec.ts
Co-authored-by: Nicholas Rice <3213292+nicholasrice@users.noreply.github.com>
* Update packages/web-components/fast-ssr/src/template-parser/template-parser.spec.ts
Co-authored-by: Nicholas Rice <3213292+nicholasrice@users.noreply.github.com>
* Update packages/web-components/fast-foundation/src/directives/reflect-attributes.ts
Co-authored-by: Nicholas Rice <3213292+nicholasrice@users.noreply.github.com>
* Update packages/web-components/fast-foundation/src/directives/reflect-attributes.ts
Co-authored-by: Nicholas Rice <3213292+nicholasrice@users.noreply.github.com>
* chore: cleanup tests after rebase
Co-authored-by: Nicholas Rice <3213292+nicholasrice@users.noreply.github.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Chris Holt <chhol@microsoft.com>
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fix: ssr bug fixes (#5850)
* expose dom shim from package root
* ensure DOM updates are made synchronously
* upgrade lit to use latest dom shim
* fleshing out dom-shim with foundation-element requirements
* fix root <template> behavior to be more durable to formatting
* implement classList binding for native elements
* enables style retrevial for a custom element through SSR style-strategy
* clean up exports
* add tagName to elements created by ElementRenderer to be used by componentPresentation
* prettier
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: new CSSDirective design (#5835)
* feat: new CSSDirective design
* feat: attach the partial helper to the css helper
* fix: update foundation to new CSSDirective API
* fix: update components to new CSSDirective API
* docs: add missing docs to CSSTEmplateTag type
* Change files
* fix: add back cssPartial with deprecation message
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* rename title attribute on disclosure to summary (#5861)
* rename title attribute on disclosure to summary
* Change files
* fix: update default value of dialog's modal attribute to false (#5860)
* update the default value of dialog modal attribute to false
* Change files
* feat: update private change handlers to protected (#5872)
* update attribute and observable change handlers with internal logic to be protected instead of private
* Change files
* udpate api docs
* feat: trim unnecessary nodes from start end (#5892)
* remove unnecessary DOM nodes from start/end slot templates
* Change files
* fix document element bindings in SSR template rendering (#5905)
* add missing tests for host element bindings
* use parse for template rendering to support binding to document elements
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* fix various binding bugs in SSR template renderer (#5929)
* adding tests
* ensure boolean attribute bindings have value converted prior to setting attribute value
* ensure setAttribute isn't called for a null or undefined binding product
* consolidate binding rendering logic
* adding tests for binding boolean attributes and classList for template elements
* fix template binding bugs
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* fixing build / test after rebase
* chore: add api extractor to FAST SSR (#5939)
* adds api extractor and configures exports. Also removes entrypoints to certain incomplete features
* use latest api extractor
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* update after rebase
* update yarn.lock after rebase
* feat: officially expose testing helpers (#5958)
* feat: officially expose testing helpers
* Change files
* docs: improve testing helper code docs
* test: trying to fix react wrapper tests
* Change files
* update typescript to 4.7.0-beta
* fix type error in router configuration
* fixing foundation compile error
* all packages passing build
* add export paths to fast-element
* fixing reat-wrapper testing infrastructure
* fixing test in fast-website
* fixing color-explorer test
* fixing figma-plugin tests
* fixing dev server
* fixing fast-website dev
* fixing error generating docs
* add description for utility
* Change files
Co-authored-by: Rob Eisenberg <rob@bluespire.com>
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* chore: modernize package.json and rollup for vNext (#5966)
* chore: fast-element package and build modernization
* chore: fast-foundation package and build modernization
* chore: package updates for fast-ssr
* chore: remove rollup of router
* chore: update rollup to enable package exports
* Change files
* chore: remove rollup of react-wrapper
* Change files
* chore: update package.json metadata
* Change files
* chore: ensure default export last for fast-element
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* refactor: separate update queue from DOM and fix architectural layers (#5972)
* refactor: separate update queue from DOM and fix architectural layers
* fix: update fast-foundation to not use deprecated APIs
* fix: update fast-ssr to not use deprecated APIs
* fix: update fast-react-wrapper to not use deprecated APIs
* fix: update fast-website to not use deprecated APIs
* Change files
* chore: re-enable deprecated APIs after package updates
* docs: fix some API comment typos in the update queue docs
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fix: enable safer type inference on the repeat helper (#5975)
* fix: enable safer type inference on the repeat helper
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: enable array length observation (#5977)
* feat: enable array length observation
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fix: merge bug related to moved APIs (#5978)
* fix: merge bug related to moved APIs
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* chore: add SSR documentation (#5969)
* adding ssr documentation
* exporting ViewBehaviorFactoryRenderer type
* pretty pretty
* fixing api docs
* pretty pretty pretty
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
* Update packages/web-components/fast-ssr/README.md
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Co-authored-by: Jane Chu <7559015+janechu@users.noreply.github.com>
* feat: introduce binding mode and binding config define APIs (#5988)
* feat: introduce AspectType
* feat: introduce binding mode and binding config define APIs
* refactor: refine binding mode types
* docs: document binding APIs
* Change files
* refactor: make the standard event binding a default for mode creation
* fix: correct a generics issue and export a missing type
* fix: default event type for binding modes never undefined
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: add two-way binding (#5995)
* feat: add two-way binding
* test: add tests for previously created binding modes
* test: add tests for two-way bindings
* test: add event binding tests
* Change files
* fix: prevent memory leek in one-time events
* fix: prevent clashing state for behaviors on the same node
* fix: more internal consistency for binding state
* fix: more consistency and prevent internal clobber of directive state
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* chore: remove dependency on ie11 types (#5941)
* feat: new execution context design (#5800)
* refactor: new design for execution context
* feat: add two new event helpers to the execution context and tests
* fix: wip update types to match new context apis
* fix: update foundation and components template types
* Change files
* fix: update template type in fast-website
* fix: update site components for new template types
* fix: add missing api updates
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* remove unnecessary dependency on @types/ie11 package
* Change files
Co-authored-by: Rob Eisenberg <EisenbergEffect@users.noreply.github.com>
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* fix incorrect and non-semantic slot names for search (#5942)
* fix incorrect and unsemantic slot names for search
* Change files
* remove deprecated keyCodes and add additional "keys" (#5944)
* remove deprecated keycodes and add additional keys
* Change files
* remove deprecated keyCode m fn
* remove deprecated item slot on accordion (#5945)
* remove deprecated item slot on accordion
* Change files
* remove classes and parts from slots on `fast-foundation` templates (#5946)
* fixes build-break caused by rebase
* feat: update private change handlers to protected (#5872)
* update attribute and observable change handlers with internal logic to be protected instead of private
* Change files
* udpate api docs
* fixing build / test after rebase
* remove class and part names from slots in fast foundation templates
* Change files
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* feat: add splice strategies for array observation (#5999)
* feat: extract splice merging to a strategy
* feat: enable splice strategy to control splice creation per array method
* feat: add reset splice strategy
* refactor: made array length observation part of the standard interface
* feat: add SpliceStrategySupport and fix enum/literals
* refactor: re-organize array observation code
* chore: add splice-strategies to the package and clean up exports
* Change files
* chore: remove invalid eslint comments
* test: add array observer tests for all array mutations
* fix: adding extensions back to exports
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* Implement ElementRenderer and DOM shim directly into SSR package, remove lit-labs/ssr dependency (#5997)
* integrate DOM shim and update acknowledgements
* remove lit-labs/ssr dependency
* add license info to acknowledgements
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* fix(fast-element): do not notify splices for changes pre-subscription (v2) (#6006)
* fix(fast-element): do not notify splices for changes pre-subscription
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* remove private field from fast-ssr (#6010)
* remove private field from package.json
* Change files
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* changed fast-element to a peer dependency (#6011)
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* chore: strip internals from package d.ts files (#6015)
* chore: configure fast-element for internal stripping
* chore: configure fast-foundation for internals stripping
* chore: configure fast-ssr for internals stripping
* chore: configure fast-router for internals stripping
* chore: finish cleanup of internals stripping
* Change files
Co-authored-by: EisenbergEffect <roeisenb@microsoft.com>
* feat: update tabs bool attr defaulting to true (#6020)
* change activeindicator attribute in tabs to hide-active-indicator to better support boolean attribute behavior
* Change files
* Add adaptive-ui package (#5989)
* chore: update api extractor to support node 16 (#6032)
* update api extractor and typescript to use the latest versions
* Change files
* update dialog trap focus to default to false (#6016)
* change trapFocus on dialog to noFocusTrap to better support boolean attributes
* Change files
* update SSR npmignore file w/ new project structure (#6017)
* update npmignore file w/ new project structure
* Change files
Co-authored-by: nicholasrice <nicholasrice@users.noreply.github.com>
* fix: add support for foundation components to SSR DOM shim (#6031)
* add files and foundation dev dependency
* fixing issue where getter and static property "attributes" was causing static to clobber the getter
* removing style utilities
* adding uninstall dom shim test util
* adding foundation DOM shim
* Revert "removing style utilities"
This reverts commit
|
||
---|---|---|
.. | ||
helpers | ||
releasing | ||
clean.js | ||
convert-readme.js | ||
convert-schemas.js | ||
copy.js | ||
get-package-json.js | ||
transform-fragments.js |