mirror of https://github.com/hashicorp/consul
03a1a86dfe
* v3.20.2...v3.24.0 * Fix handle undefined outlet in route component * Don't use template helper for optional modal.open Using the optional-helper here will trigger a computation in the same runloop error. This is because we are setting the `modal`-property when the `<Ref>` component gets rendered which will update the `this.modal`-property which will then recompute the `optional`-helper leading to this error. Instead we will create an action that will call the `open`-method on the modal when it is defined. This gets rid of the double computation error as we will not access the modal property twice in the same runloop when `modal` is getting set. * Fix - fn needs to be passed function tab-nav We create functions in the component file instead so that fn-helper stops complaining about the need to pass a function. * Update ember-exam to 6.1 version "Makes it compatible" with ember-qunit v5 * scheduleOnce setMaxHeight paged-collection We need to schedule to get around double-computation error. * Fix - model.data is removed from ember-data This has been private API all along - we need to work around the removal. Reference: https://github.com/emberjs/data/pull/7338/files#diff-9a8746fc5c86fd57e6122f00fef3155f76f0f3003a24b53fb7c4621d95dcd9bfL1310 * Fix `propContains` instead of `deepEqual` policy Recent model.data works differently than iterating attributes. We use `propContains` instead of `deepEqual`. We are only interested in the properties we assert against and match the previous behavior with this change. * Fix `propContains` instead of `deepEqual` token * Better handling single-records repo test-helper `model.data` has been removed we need to handle proxies and model instances differently. * Fix remaining repository tests with propContains We don't want to match entire objects - we don't care about properties we haven't defined in the assertion. * Don't use template helper for optional modal.open Using a template helper will give us a recomputation error - we work around it by creating an explicit action on the component instead. * Await `I $verb the $pageObject object` step * Fix no more customization ember-can No need to customize, the helper handles destruction fine on its own. * Fix - don't pass `optional` functions to fn We will declare the functions on the component instead. This gives us the same behavior but no error from `fn`, which expects a function to be passed. * Fix - handle `undefined` state on validate modifier StateChart can yield out an undefined `state` we need to handle that in the validate modifier * Fix linting errors tests directory * Warn / turn off new ember linting issues We will tackle them one by one and don't want to autofix issues that could be dangerous to auto-fix. * Auto-fix linting issues * More linting configuration * Fix remaining linting issues * Fix linting issues new files after rebase * ui: Remove ember-cli-uglify config now we are using terser (#14574) Co-authored-by: John Cowen <johncowen@users.noreply.github.com> |
||
---|---|---|
.. | ||
README.mdx | ||
index.hbs | ||
index.js |
README.mdx
# CustomElement A renderless component to aid with the creation of HTML custom elements a.k.a WebComponents. All of the CustomElement component arguments are only used at construction time (within the components constructor) therefore they are, by design, static. You shouldn't be dynamically updating these values at all. They are only for type checking and documention purposes and therefore once defined/hardcoded they should only change if you as the author wishes to change them. The component is built from various other components, also see their documentaton for further details (`<ShadowHost />`, `<ShadowTemplate />`). ```hbs preview-template <CustomElement @element="x-component" @attrs={{array (array 'type' '"awesome" | "sauce"' 'awesome' 'Set the type of the x-component') (array 'x' 'number' 0 'The x-ness of the x-component') }} @cssprops={{array (array '--awesome-x-sauce' 'length' '[x]' 'Makes the x-ness of the sauce available to CSS, automatically synced/tracked from the x attributes') (array '--awesome-color' 'color' undefined 'This CSS property can be used to set the color of the awesome') }} @cssparts={{array (array 'base' 'Style base from The Outside via ::part(base)') }} @slots={{array (array 'header' "You'll want to document the slots also") (array '' 'Including the default slot') }} as |custom element|> <x-component {{did-insert custom.connect}} {{will-destroy custom.disconnect}} aria-hidden="true" ...attributes > <custom.Template @styles={{css-map }} > <div part="base" data-x={{element.attrs.x}} data-type={{element.attrs.type}} > <slot name="header"></slot> <slot></slot> </div> </custom.Template> </x-component> </CustomElement> ``` ## Arguments All `descriptions` in attributes will be compiled out at build time as well as the `@description` attribute itself. | Attribute | Type | Default | Description | | :------------ | :------------- | :------ | :------------------------------------------------------------------------- | | element | string | | The custom tag to be used for the custom element. Must include a dash | | description | string | | Short 1 line description for the element. Think "git commit title" style | | attrs | attrInfo[] | | An array of attributes that can be used on the element | | slots | slotsInfo[] | | An array of slots that can be used for the element (100% compiled out) | | cssprops | cssPropsInfo[] | | An array of CSS properties that are relevant to the component | | cssparts | cssPartsInfo[] | | An array of CSS parts that can be used for the element (100% compiled out) | | args | argsInfo[] | | An array of Glimmer arguments used for the component (100% compiled out) | ## Exports ### custom | Attribute | Type | Description | | :--------- | :------- | :---------------------------------------------------------------------------------- | | connect | function | A did-insert-able callback for tagging an element to be used for the custom element | | disconnect | function | A will-destroy-able callback for destroying an element used for the custom element | ### element | Attribute | Type | Description | | :--------- | :------- | :------------------------------------------------------------------------------- | | attributes | object | An object containing a reference to all the custom elements' observed properties | | * | | All other properties proxy through to the CustomElements class |