## Property ### Properties * `id` **[String][1]** Property id, eg. `my-property-id`. * `property` **[String][1]** Related CSS property name, eg. `text-align`. * `default` **[String][1]** Defaul value of the property. * `label` **[String][1]** Label to use in UI, eg. `Text Align`. * `onChange` **[Function][2]?** Change callback. ```js onChange: ({ property, from, to }) => { console.log(`Changed property`, property.getName(), { from, to }); } ``` ### getId Get property id. Returns **[String][1]** ### getType Get the property type. The type of the property is defined on property creation and based on its value the proper Property class is assigned. The default type is `base`. Returns **[String][1]** ### getName Get name (the CSS property name). Returns **[String][1]** ### getLabel Get property label. #### Parameters * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.locale` **[Boolean][4]** Use the locale string from i18n module (optional, default `true`) Returns **[String][1]** ### getValue Get property value. #### Parameters * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.noDefault` **[Boolean][4]** Avoid returning the default value (optional, default `false`) Returns **[String][1]** ### hasValue Check if the property has value. #### Parameters * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.noParent` **[Boolean][4]** Ignore the value if it comes from the parent target. (optional, default `false`) Returns **[Boolean][4]** ### hasValueParent Indicates if the current value is coming from a parent target (eg. another CSSRule). Returns **[Boolean][4]** ### getStyle Get the CSS style object of the property. #### Parameters * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.camelCase` **[Boolean][4]?** Return property name in camelCase. #### Examples ```javascript // In case the property is `color` with a value of `red`. console.log(property.getStyle()); // { color: 'red' }; ``` Returns **[Object][3]** ### getDefaultValue Get the default value. Returns **[string][1]** ### upValue Update the value. The change is also propagated to the selected targets (eg. CSS rule). #### Parameters * `value` **[String][1]** New value * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.partial` **[Boolean][4]** If `true` the update on targets won't be considered complete (not stored in UndoManager) (optional, default `false`) * `opts.noTarget` **[Boolean][4]** If `true` the change won't be propagated to selected targets. (optional, default `false`) ### isVisible Check if the property is visible Returns **[Boolean][4]** ### clear Clear the value. The change is also propagated to the selected targets (eg. the css property is cleared). #### Parameters * `opts` **[Object][3]** Options (optional, default `{}`) * `opts.noTarget` **[Boolean][4]** If `true` the change won't be propagated to selected targets. (optional, default `false`) ### canClear Indicates if the current value comes directly from the selected target and so can be cleared. Returns **[Boolean][4]** ### getParent If the current property is a sub-property, this will return the parent Property. Returns **([[Property][5]] | null)** ### isFull Indicates if the property is full-width in UI. Returns **[Boolean][4]** [1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String [2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function [3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object [4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean [5]: #property