alchemy-form 0.2.10 → 0.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/assets/stylesheets/form/alchemy_form.scss +1 -2
  3. package/assets/stylesheets/form/elements/_badge.scss +41 -0
  4. package/assets/stylesheets/form/elements/_button.scss +4 -31
  5. package/assets/stylesheets/form/elements/_code_input.scss +0 -1
  6. package/assets/stylesheets/form/elements/_feedback_input.scss +2 -0
  7. package/assets/stylesheets/form/elements/_field.scss +29 -23
  8. package/assets/stylesheets/form/elements/_form.scss +7 -2
  9. package/assets/stylesheets/form/elements/_settings_editor.scss +62 -0
  10. package/assets/stylesheets/form/elements/_table.scss +12 -3
  11. package/assets/stylesheets/form/elements/index.scss +19 -17
  12. package/assets/stylesheets/form/general/index.scss +2 -2
  13. package/config/routes.js +3 -3
  14. package/controller/form_api_controller.js +2 -4
  15. package/element/00_form_base.js +21 -0
  16. package/element/10_dataprovider.js +2 -2
  17. package/element/al_code_input.js +51 -13
  18. package/element/al_field.js +89 -24
  19. package/element/al_form.js +9 -2
  20. package/element/al_select.js +2 -1
  21. package/element/al_settings_editor.js +367 -0
  22. package/element/al_table.js +11 -6
  23. package/package.json +4 -3
  24. package/view/form/elements/al_settings_editor.hwk +36 -0
  25. package/view/form/elements/alchemy_field.hwk +1 -12
  26. package/view/form/inputs/edit/object.hwk +9 -0
  27. package/view/form/inputs/edit/settings.hwk +5 -0
  28. package/view/form/inputs/view/string.hwk +14 -1
  29. package/view/form/inputs/view_inline/boolean.hwk +24 -17
  30. package/view/form/inputs/view_inline/datetime.hwk +31 -24
  31. package/view/form/inputs/view_inline/enum.hwk +32 -1
  32. package/view/form/inputs/view_inline/objectid.hwk +9 -1
  33. package/view/form/inputs/view_inline/string.hwk +11 -3
  34. package/view/form/wrappers/default/default.hwk +18 -2
  35. /package/element/{al_string_input.js → 50-al_string_input.js} +0 -0
@@ -0,0 +1,5 @@
1
+ <% config = value.getEditorConfiguration() %>
2
+ <al-settings-editor
3
+ class="alchemy-field-value"
4
+ #settings_config={% config %}
5
+ ></al-settings-editor>
@@ -1,5 +1,18 @@
1
1
  <div>
2
- <span class="alchemy-field-value">{{ value }}</span>
2
+ <span class="alchemy-field-value">
3
+ <% if (value || value === false) { %>
4
+ {{ value }}
5
+ <% } else { %>
6
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
7
+ {%t
8
+ "empty-value"
9
+ field=field_context.config.name
10
+ path=field_context.config.path_in_document
11
+ zone=self.zone
12
+ %}
13
+ </span>
14
+ <% } %>
15
+ </span>
3
16
  {% if alchemy_field.config.options.suffix %}
4
17
  <span class="alchemy-field-suffix">{{ alchemy_field.config.options.suffix }}</span>
5
18
  {% /if %}
@@ -1,19 +1,26 @@
1
- <span
2
- class="alchemy-field-value boolean-wrapper"
3
- >
4
- <%
5
- new_class = '';
1
+ {% if (value_is_empty AND self.allow_empty_value_placeholder) %}
2
+ <span class="alchemy-field-value">
3
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
4
+ {{ self.createEmptyValuePlaceholderText() }}
5
+ </span>
6
+ </span>
7
+ {% else %}
8
+ <span class="alchemy-badge alchemy-field-value">
9
+ <% $0.classList.add('boolean-' + value) %>
6
10
 
7
- if (value) {
8
- new_class = 'boolean-true';
9
- } else if (value === false) {
10
- new_class = 'boolean-false';
11
- } else {
12
- new_class = 'boolean-null';
13
- value = 'empty';
14
- }
11
+ {% if value %}
12
+ <al-icon class="value-icon" icon-name="check"></al-icon>
13
+ {% else %}
14
+ <al-icon class="value-icon" icon-name="xmark"></al-icon>
15
+ {% /if %}
15
16
 
16
- $0.classList.add(new_class);
17
- %>
18
- {{ value }}
19
- </span>
17
+ {%t
18
+ "" + value
19
+ field_name=self.field_name
20
+ model_name=self.model
21
+ field_type=self.field_type
22
+ zone=self.zone
23
+ path=self.config.path_in_document
24
+ %}
25
+ </span>
26
+ {% /if %}
@@ -1,28 +1,35 @@
1
- <%
2
- date_format = '';
1
+ {% if (value_is_empty AND self.allow_empty_value_placeholder) %}
2
+ <span class="alchemy-field-value">
3
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
4
+ {{ self.createEmptyValuePlaceholderText() }}
5
+ </span>
6
+ </span>
7
+ {% else %}
8
+ <%
9
+ date_format = '';
3
10
 
4
- if (alchemy_field && alchemy_field.applied_options) {
5
- date_format = alchemy_field.applied_options.date_format;
6
- }
11
+ if (alchemy_field && alchemy_field.applied_options) {
12
+ date_format = alchemy_field.applied_options.date_format;
13
+ }
7
14
 
8
- if (!date_format || date_format == 'timeago' || date_format == 'time-ago' || date_format == 'time_ago') {
9
- date_format = 'relative';
10
- }
15
+ if (!date_format || date_format == 'timeago' || date_format == 'time-ago' || date_format == 'time_ago') {
16
+ date_format = 'relative';
17
+ }
11
18
 
12
- if (alchemy_field?.config?.options?.time_ago) {
13
- date_format = 'relative';
14
- }
19
+ if (alchemy_field?.config?.options?.time_ago) {
20
+ date_format = 'relative';
21
+ }
22
+ %>
15
23
 
16
- %>
17
-
18
- <% if (date_format == 'relative') { %>
19
- <time-ago
20
- class="alchemy-field-value"
21
- date={% value.toISOString() %}
22
- ></time-ago>
23
- <% } else { %>
24
- <time
25
- class="alchemy-field-value"
26
- datetime={% value.toISOString() %}
27
- >{{ value.format(date_format) }}</time>
28
- <% } %>
24
+ <% if (date_format == 'relative') { %>
25
+ <time-ago
26
+ class="alchemy-field-value"
27
+ date={% value.toISOString() %}
28
+ ></time-ago>
29
+ <% } else { %>
30
+ <time
31
+ class="alchemy-field-value"
32
+ datetime={% value.toISOString() %}
33
+ >{{ value.format(date_format) }}</time>
34
+ <% } %>
35
+ {% /if %}
@@ -1 +1,32 @@
1
- <span class="alchemy-field-value alchemy-field-enum">{{ value }}</span>
1
+ {% if (value_is_empty AND self.allow_empty_value_placeholder) %}
2
+ <span class="alchemy-field-value">
3
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
4
+ {{ self.createEmptyValuePlaceholderText() }}
5
+ </span>
6
+ </span>
7
+ {% else %}
8
+ {% set enum_config to self.config.getValueConfiguration(value) %}
9
+ {% set display_value to OR enum_config.title OR enum_config.name OR value %}
10
+
11
+ <span class="alchemy-badge alchemy-field-value alchemy-field-enum">
12
+ <% $0.classList.add('enum-' + value) %>
13
+
14
+ {% if enum_config.number %}
15
+ <% $0.dataset.badgeColorSet = enum_config.number %>
16
+ {% /if %}
17
+
18
+ {% if enum_config.color %}
19
+ <% $0.style.setProperty('--badge-bg', enum_config.color) %>
20
+ {% /if %}
21
+
22
+ {% if enum_config.text_color %}
23
+ <% $0.style.setProperty('--badge-color', enum_config.text_color) %>
24
+ {% /if %}
25
+
26
+ {% if enum_config.icon %}
27
+ <al-icon class="value-icon" icon-name={% enum_config.icon %}></al-icon>
28
+ {% /if %}
29
+
30
+ <span class="alchemy-enum-display-value">{{ display_value }}</span>
31
+ </span>
32
+ {% /if %}
@@ -1 +1,9 @@
1
- <code class="alchemy-field-value">{{ value }}</code>
1
+ {% if (value_is_empty AND self.allow_empty_value_placeholder) %}
2
+ <span class="alchemy-field-value">
3
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
4
+ {{ self.createEmptyValuePlaceholderText() }}
5
+ </span>
6
+ </span>
7
+ {% else %}
8
+ <code class="alchemy-field-value">{{ value }}</code>
9
+ {% /if %}
@@ -1,6 +1,14 @@
1
1
  <div>
2
- <span class="alchemy-field-value">{{ value }}</span>
3
- {% if alchemy_field.config.options.suffix %}
4
- <span class="alchemy-field-suffix">{{ alchemy_field.config.options.suffix }}</span>
2
+ {% if (value_is_empty AND self.allow_empty_value_placeholder) %}
3
+ <span class="alchemy-field-value">
4
+ <span class="alchemy-badge alchemy-field-empty-value-placeholder">
5
+ {{ self.createEmptyValuePlaceholderText() }}
6
+ </span>
7
+ </span>
8
+ {% else %}
9
+ <span class="alchemy-field-value">{{ value }}</span>
10
+ {% if alchemy_field.config.options.suffix %}
11
+ <span class="alchemy-field-suffix">{{ alchemy_field.config.options.suffix }}</span>
12
+ {% /if %}
5
13
  {% /if %}
6
14
  </div>
@@ -3,11 +3,27 @@
3
3
  <span
4
4
  data-he-name="field-title"
5
5
  data-he-slot="field-title"
6
- >{{ alchemy_field.field_title }}</span>
6
+ >
7
+ {%t
8
+ "alchemy-field-title"
9
+ field=field_context.config.name
10
+ path=field_context.config.path_in_document
11
+ zone=self.zone
12
+ fallback=alchemy_field.field_title
13
+ %}
14
+ </span>
7
15
  <small
8
16
  data-he-name="field-description"
9
17
  data-he-slot="field-description"
10
- >{{ alchemy_field.field_description }}</small>
18
+ >
19
+ {%t
20
+ "alchemy-field-description"
21
+ field=field_context.config.name
22
+ path=field_context.config.path_in_document
23
+ zone=self.zone
24
+ fallback=alchemy_field.field_description
25
+ %}
26
+ </small>
11
27
  </al-label>
12
28
  </div>
13
29
  <div data-he-name="field"></div>