{% 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 defaultAttr = { 'data-controller': 'back-button', 'data-action': 'click->back-button#goBack', 'data-back-button-current-url-value': app.request.uri, 'data-back-button-fallback-url-value': params.fallback_url|default(params.url|default(app.request.uri)) } %} {% set params = { class: null, text: 'sylius.ui.cancel'|trans, type: 'button', attr: {} } |merge(params) |merge({attr: (params.attr is defined ? params.attr : {})|merge(defaultAttr)}) %} {{ _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 -%}