{% macro default(params = {}) %}
{% set params = {
attr: null,
class: null,
text: "Button",
disabled: false,
dropdown: false,
icon: null,
icon_class: null,
icon_only: false,
id: null,
size: null,
type: "button",
url: null,
form: null,
}|merge(params) %}
{% set button_class = 'btn' ~
(params.class ? ' ' ~ params.class : '') ~
(params.dropdown ? ' dropdown-toggle' : '') ~
(params.icon_only ? ' btn-icon' : '') ~
(params.size == 'large' ? ' btn-lg' : '') ~
(params.size == 'small' ? ' btn-sm' : '') %}
{% if params.url %}
{{ params.icon ? ux_icon(params.icon, {'class': params.icon_class|default('icon') }) }}
{{ not params.icon_only ? params.text }}
{% else %}
{% endif %}
{% endmacro %}
{% macro primary(params = {}) %}
{% set params = {
class: null,
}|merge(params) %}
{% set new_params = params|merge({ class: 'btn-primary ' ~ params.class }) %}
{{ _self.default( new_params) }}
{% endmacro %}
{% macro delete(params = {}) %}
{% set params = {
class: null,
}|merge(params) %}
{% set new_params = { text: 'Delete' }|merge(params)|merge({ class: 'btn-ghost-danger ' ~ params.class }) %}
{{ _self.default( new_params) }}
{% endmacro %}
{% macro create(params = {}) %}
{% set params = {
type: 'submit',
text: 'sylius.ui.create'|trans,
}|merge(params) %}
{{ _self.primary(params) }}
{% endmacro %}
{% macro update(params = {}) %}
{% set params = {
type: 'submit',
text: 'sylius.ui.save_changes'|trans,
}|merge(params) %}
{{ _self.primary(params) }}
{% endmacro %}
{% macro cancel(params = {}) %}
{% set params = {
class: null,
text: 'sylius.ui.cancel'|trans,
url: app.request.headers.get('referer'),
}|merge(params)%}
{{ _self.default(params) }}
{% endmacro %}
{% block attributes -%}
{%- for attrname, attrvalue in params.attr -%}
{{- " " -}}
{%- if attrvalue is same as(true) -%}
{{- attrname }}="{{ attrname }}"
{%- elseif attrvalue is not same as(false) -%}
{{- attrname }}="{{ attrvalue }}"
{%- endif -%}
{%- endfor -%}
{%- endblock attributes -%}