@shoper/phoenix_design_system 1.2.3-2 → 1.2.3-4

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 (125) hide show
  1. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +18 -4
  2. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js +3 -4
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/file_picker/file/file.js +69 -0
  6. package/build/cjs/packages/phoenix/src/components/{toggle/toggle_button.js.map → form/file_picker/file/file.js.map} +1 -1
  7. package/build/cjs/packages/phoenix/src/components/form/file_picker/file/file_model.js +16 -0
  8. package/build/{esm/packages/phoenix/src/components/form/input_stepper/input_stepper_constants.js.map → cjs/packages/phoenix/src/components/form/file_picker/file/file_model.js.map} +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/file_picker/file_picker.js +162 -0
  10. package/build/cjs/packages/phoenix/src/components/form/{input_stepper/input_stepper.js.map → file_picker/file_picker.js.map} +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/file_picker/file_picker_constants.js +37 -0
  12. package/build/{esm/packages/phoenix/src/components/form/input_stepper/stepper_action_button.js.map → cjs/packages/phoenix/src/components/form/file_picker/file_picker_constants.js.map} +1 -1
  13. package/build/cjs/packages/phoenix/src/components/form/file_picker/file_picker_label.js +53 -0
  14. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option.js +6 -5
  15. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option.js.map +1 -1
  16. package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/select/controllers/base_select_controller.js +13 -13
  18. package/build/cjs/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js +6 -6
  19. package/build/cjs/packages/phoenix/src/components/form/select/controllers/select_controller.js +2 -2
  20. package/build/cjs/packages/phoenix/src/components/form/select/select.js +25 -87
  21. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
  22. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js +0 -5
  23. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js.map +1 -1
  24. package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js +0 -6
  25. package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
  26. package/build/cjs/packages/phoenix/src/components/modal/modal.js +1 -1
  27. package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +2 -6
  28. package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
  29. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -16
  30. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  31. package/build/cjs/packages/phoenix/src/index.js +21 -39
  32. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +2 -0
  34. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +18 -4
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.d.ts +0 -1
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js +3 -4
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/file_picker/file/file.d.ts +11 -0
  40. package/build/esm/packages/phoenix/src/components/form/file_picker/file/file.js +67 -0
  41. package/build/esm/packages/phoenix/src/components/{toggle/toggle_button.js.map → form/file_picker/file/file.js.map} +1 -1
  42. package/build/esm/packages/phoenix/src/components/form/file_picker/file/file_model.d.ts +7 -0
  43. package/build/esm/packages/phoenix/src/components/form/file_picker/file/file_model.js +12 -0
  44. package/build/esm/packages/phoenix/src/components/{toggle/toggle_constants.js.map → form/file_picker/file/file_model.js.map} +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker.d.ts +27 -0
  46. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker.js +160 -0
  47. package/build/esm/packages/phoenix/src/components/form/{input_stepper/input_stepper.js.map → file_picker/file_picker.js.map} +1 -1
  48. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_constants.d.ts +27 -0
  49. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_constants.js +29 -0
  50. package/build/{cjs/packages/phoenix/src/components/form/input_stepper/input_stepper_constants.js.map → esm/packages/phoenix/src/components/form/file_picker/file_picker_constants.js.map} +1 -1
  51. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_label.d.ts +11 -0
  52. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_label.js +51 -0
  53. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_types.d.ts +6 -0
  54. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_types.js +2 -0
  55. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker_types.js.map +1 -0
  56. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.d.ts +1 -2
  57. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.js +6 -5
  58. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.js.map +1 -1
  59. package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js +1 -1
  60. package/build/esm/packages/phoenix/src/components/form/select/controllers/base_select_controller.d.ts +10 -10
  61. package/build/esm/packages/phoenix/src/components/form/select/controllers/base_select_controller.js +13 -13
  62. package/build/esm/packages/phoenix/src/components/form/select/controllers/multi_select_controller.d.ts +3 -3
  63. package/build/esm/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js +6 -6
  64. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controller.d.ts +1 -1
  65. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controller.js +2 -2
  66. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controllers_types.d.ts +9 -9
  67. package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +3 -16
  68. package/build/esm/packages/phoenix/src/components/form/select/select.js +26 -88
  69. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
  70. package/build/esm/packages/phoenix/src/components/form/select/select_constants.d.ts +0 -4
  71. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js +1 -5
  72. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js.map +1 -1
  73. package/build/esm/packages/phoenix/src/components/form/select/select_utils.d.ts +0 -2
  74. package/build/esm/packages/phoenix/src/components/form/select/select_utils.js +0 -6
  75. package/build/esm/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
  76. package/build/esm/packages/phoenix/src/components/modal/modal.js +1 -1
  77. package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +2 -6
  78. package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
  79. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.d.ts +0 -1
  80. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -16
  81. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  82. package/build/esm/packages/phoenix/src/index.d.ts +3 -7
  83. package/build/esm/packages/phoenix/src/index.js +3 -6
  84. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  85. package/package.json +3 -3
  86. package/build/cjs/external/lit/external/lit-html/directives/template-content.js +0 -15
  87. package/build/cjs/external/lit/external/lit-html/directives/template-content.js.map +0 -1
  88. package/build/cjs/packages/phoenix/src/components/form/input_stepper/display_input.js +0 -53
  89. package/build/cjs/packages/phoenix/src/components/form/input_stepper/input_stepper.js +0 -96
  90. package/build/cjs/packages/phoenix/src/components/form/input_stepper/input_stepper_constants.js +0 -20
  91. package/build/cjs/packages/phoenix/src/components/form/input_stepper/stepper_action_button.js +0 -39
  92. package/build/cjs/packages/phoenix/src/components/form/input_stepper/stepper_action_button.js.map +0 -1
  93. package/build/cjs/packages/phoenix/src/components/toggle/toggle.js +0 -43
  94. package/build/cjs/packages/phoenix/src/components/toggle/toggle.js.map +0 -1
  95. package/build/cjs/packages/phoenix/src/components/toggle/toggle_button.js +0 -57
  96. package/build/cjs/packages/phoenix/src/components/toggle/toggle_constants.js +0 -15
  97. package/build/cjs/packages/phoenix/src/components/toggle/toggle_constants.js.map +0 -1
  98. package/build/esm/external/lit/external/lit-html/directives/template-content.js +0 -11
  99. package/build/esm/external/lit/external/lit-html/directives/template-content.js.map +0 -1
  100. package/build/esm/packages/phoenix/src/components/form/input_stepper/display_input.d.ts +0 -9
  101. package/build/esm/packages/phoenix/src/components/form/input_stepper/display_input.js +0 -51
  102. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper.d.ts +0 -19
  103. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper.js +0 -94
  104. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper_constants.d.ts +0 -11
  105. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper_constants.js +0 -14
  106. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper_types.d.ts +0 -3
  107. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper_types.js +0 -3
  108. package/build/esm/packages/phoenix/src/components/form/input_stepper/input_stepper_types.js.map +0 -1
  109. package/build/esm/packages/phoenix/src/components/form/input_stepper/stepper_action_button.d.ts +0 -8
  110. package/build/esm/packages/phoenix/src/components/form/input_stepper/stepper_action_button.js +0 -37
  111. package/build/esm/packages/phoenix/src/components/form/select/select_types.d.ts +0 -2
  112. package/build/esm/packages/phoenix/src/components/form/select/select_types.js +0 -2
  113. package/build/esm/packages/phoenix/src/components/form/select/select_types.js.map +0 -1
  114. package/build/esm/packages/phoenix/src/components/toggle/toggle.d.ts +0 -11
  115. package/build/esm/packages/phoenix/src/components/toggle/toggle.js +0 -41
  116. package/build/esm/packages/phoenix/src/components/toggle/toggle.js.map +0 -1
  117. package/build/esm/packages/phoenix/src/components/toggle/toggle_button.d.ts +0 -14
  118. package/build/esm/packages/phoenix/src/components/toggle/toggle_button.js +0 -55
  119. package/build/esm/packages/phoenix/src/components/toggle/toggle_constants.d.ts +0 -6
  120. package/build/esm/packages/phoenix/src/components/toggle/toggle_constants.js +0 -9
  121. package/build/esm/packages/phoenix/src/components/toggle/toggle_types.d.ts +0 -3
  122. package/build/esm/packages/phoenix/src/components/toggle/toggle_types.js +0 -2
  123. package/build/esm/packages/phoenix/src/components/toggle/toggle_types.js.map +0 -1
  124. /package/build/cjs/packages/phoenix/src/components/form/{input_stepper/display_input.js.map → file_picker/file_picker_label.js.map} +0 -0
  125. /package/build/esm/packages/phoenix/src/components/form/{input_stepper/display_input.js.map → file_picker/file_picker_label.js.map} +0 -0
@@ -0,0 +1,67 @@
1
+ import { __decorate, __metadata } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { html, nothing } from 'lit';
3
+ import { property } from 'lit/decorators';
4
+ import { PhoenixLightLitElement } from '../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../../core/decorators/phoenix_custom_element.js';
6
+ import { ICON_CSS_CLASSES } from '../../../icon/icon_constants.js';
7
+ import { FILE_ITEM_EVENT_NAMES, FILE_ITEM_CSS_CLASSES, FILE_PICKER_ICON_CSS_CLASSES } from '../file_picker_constants.js';
8
+
9
+ let HFile = class HFile extends PhoenixLightLitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this._handleClick = () => {
13
+ const removeItemEvent = new CustomEvent(FILE_ITEM_EVENT_NAMES.removed, {
14
+ bubbles: true,
15
+ detail: {
16
+ fileId: this.id
17
+ }
18
+ });
19
+ this.dispatchEvent(removeItemEvent);
20
+ };
21
+ }
22
+ connectedCallback() {
23
+ super.connectedCallback();
24
+ this.setAttribute('aria-label', this.name);
25
+ this.classList.add(FILE_ITEM_CSS_CLASSES.file);
26
+ }
27
+ render() {
28
+ return html `
29
+ <span class="${FILE_ITEM_CSS_CLASSES.fileName}">${this.name}</span>
30
+ <button
31
+ class="${FILE_ITEM_CSS_CLASSES.fileRemoveButton}"
32
+ @click="${this._handleClick}"
33
+ aria-label="${this.removeButtonText} ${this.name}"
34
+ >
35
+ ${this.removeButtonIconName
36
+ ? html `<h-icon
37
+ class="${ICON_CSS_CLASSES.icon} ${FILE_PICKER_ICON_CSS_CLASSES.filePickerIcon}"
38
+ icon-name=${this.removeButtonIconName}
39
+ />`
40
+ : nothing}
41
+ ${this.removeButtonText}
42
+ </button>
43
+ `;
44
+ }
45
+ };
46
+ __decorate([
47
+ property({ type: String }),
48
+ __metadata("design:type", String)
49
+ ], HFile.prototype, "name", void 0);
50
+ __decorate([
51
+ property({ type: String }),
52
+ __metadata("design:type", String)
53
+ ], HFile.prototype, "id", void 0);
54
+ __decorate([
55
+ property({ type: String, attribute: 'remove-button-text' }),
56
+ __metadata("design:type", String)
57
+ ], HFile.prototype, "removeButtonText", void 0);
58
+ __decorate([
59
+ property({ type: String, attribute: 'remove-button-icon-name' }),
60
+ __metadata("design:type", String)
61
+ ], HFile.prototype, "removeButtonIconName", void 0);
62
+ HFile = __decorate([
63
+ phoenixCustomElement('h-file')
64
+ ], HFile);
65
+
66
+ export { HFile };
67
+ //# sourceMappingURL=file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,kDAAsD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ import { TFileItemConstructorOptions } from '../file_picker_constants';
2
+ export declare class FileItem {
3
+ name: string;
4
+ id: string;
5
+ private constructor();
6
+ static create(options: TFileItemConstructorOptions): FileItem;
7
+ }
@@ -0,0 +1,12 @@
1
+ class FileItem {
2
+ constructor({ name, id }) {
3
+ this.name = name;
4
+ this.id = id;
5
+ }
6
+ static create(options) {
7
+ return new FileItem(options);
8
+ }
9
+ }
10
+
11
+ export { FileItem };
12
+ //# sourceMappingURL=file_model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,27 @@
1
+ import { TemplateResult } from 'lit';
2
+ import { PhoenixLightLitElement } from "../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
+ export declare class HFilePicker extends PhoenixLightLitElement {
4
+ controlId: string;
5
+ controlName: string;
6
+ disabled: boolean;
7
+ required: boolean;
8
+ error: boolean;
9
+ labelText: string;
10
+ labelIconName: string;
11
+ removeButtonText: string;
12
+ removeButtonIconName: string;
13
+ accept: string;
14
+ private file;
15
+ private _$fileInputRef;
16
+ connectedCallback(): void;
17
+ protected render(): TemplateResult;
18
+ get files(): FileList | null;
19
+ private _addEventListeners;
20
+ private _handleChangeEvent;
21
+ private _getFiles;
22
+ private _getFileName;
23
+ private _getInputRefValue;
24
+ private _removeFileItem;
25
+ private _triggerClickOnLabel;
26
+ private _dispatchChangeEvent;
27
+ }
@@ -0,0 +1,160 @@
1
+ import { __decorate, __metadata } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { html, nothing } from 'lit';
3
+ import { property, state } from 'lit/decorators';
4
+ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
6
+ import classnames from '../../../../external/classnames/index.js';
7
+ import { createRef, ref } from 'lit-html/directives/ref.js';
8
+ import v4 from '../../../../../../external/uuid/dist/esm-browser/v4.js';
9
+ import { FILE_PICKER_CONTROL_CSS_CLASSES, FILE_ITEM_EVENT_NAMES, FILE_PICKER_LABEL_EVENT_NAMES } from './file_picker_constants.js';
10
+ import { FileItem } from './file/file_model.js';
11
+ import { ifDefined } from 'lit/directives/if-defined';
12
+
13
+ let HFilePicker = class HFilePicker extends PhoenixLightLitElement {
14
+ constructor() {
15
+ super(...arguments);
16
+ this._$fileInputRef = createRef();
17
+ this._handleChangeEvent = (event) => {
18
+ const filesList = this._getFiles(event);
19
+ if (filesList && filesList.length > 0) {
20
+ this.file = FileItem.create({
21
+ name: this._getFileName(filesList),
22
+ id: `file-${v4()}`
23
+ });
24
+ this.classList.add(FILE_PICKER_CONTROL_CSS_CLASSES.filePickerHasValue);
25
+ this._dispatchChangeEvent();
26
+ }
27
+ };
28
+ this._getFiles = (event) => {
29
+ const targetElement = event.currentTarget;
30
+ return targetElement.files;
31
+ };
32
+ this._getFileName = (fileList) => {
33
+ return fileList[0].name;
34
+ };
35
+ this._getInputRefValue = () => {
36
+ return this._$fileInputRef.value;
37
+ };
38
+ this._removeFileItem = () => {
39
+ const $fileInput = this._getInputRefValue();
40
+ if ($fileInput) {
41
+ $fileInput.value = '';
42
+ $fileInput.files = null;
43
+ }
44
+ this.file = null;
45
+ this.classList.remove(FILE_PICKER_CONTROL_CSS_CLASSES.filePickerHasValue);
46
+ this._dispatchChangeEvent();
47
+ };
48
+ this._triggerClickOnLabel = () => {
49
+ const $fileInput = this._getInputRefValue();
50
+ if ($fileInput)
51
+ $fileInput.click();
52
+ };
53
+ this._dispatchChangeEvent = () => {
54
+ this.dispatchEvent(new Event('change'));
55
+ };
56
+ }
57
+ connectedCallback() {
58
+ super.connectedCallback();
59
+ this._addEventListeners();
60
+ const cssClasses = classnames({
61
+ [FILE_PICKER_CONTROL_CSS_CLASSES.filePickerDisabled]: this.disabled,
62
+ [FILE_PICKER_CONTROL_CSS_CLASSES.filePickerRequired]: this.required,
63
+ [FILE_PICKER_CONTROL_CSS_CLASSES.filePickerError]: this.error
64
+ });
65
+ if (cssClasses)
66
+ this.classList.add(cssClasses);
67
+ }
68
+ render() {
69
+ var _a, _b;
70
+ super.render();
71
+ return html `
72
+ <input
73
+ ${ref(this._$fileInputRef)}
74
+ type="file"
75
+ class="${FILE_PICKER_CONTROL_CSS_CLASSES.filePickerInput}"
76
+ id="${ifDefined(this.controlId)}"
77
+ name="${ifDefined(this.controlName)}"
78
+ ?disabled="${this.disabled}"
79
+ ?required="${this.required}"
80
+ accept="${ifDefined(this.accept)}"
81
+ @change="${this._handleChangeEvent}"
82
+ hidden
83
+ />
84
+
85
+ ${!((_a = this.file) === null || _a === void 0 ? void 0 : _a.name)
86
+ ? html ` <h-file-picker-label
87
+ control-id="${this.controlId}"
88
+ label-text="${this.labelText}"
89
+ label-icon-name="${ifDefined(this.labelIconName)}"
90
+ />`
91
+ : nothing}
92
+ ${((_b = this.file) === null || _b === void 0 ? void 0 : _b.name)
93
+ ? html `<h-file
94
+ name="${this.file.name}"
95
+ id="${this.file.id}"
96
+ remove-button-text="${this.removeButtonText}"
97
+ remove-button-icon-name="${ifDefined(this.removeButtonIconName)}"
98
+ />`
99
+ : nothing}
100
+ `;
101
+ }
102
+ get files() {
103
+ const $fileInput = this._getInputRefValue();
104
+ return $fileInput.files;
105
+ }
106
+ _addEventListeners() {
107
+ this.addEventListener(FILE_ITEM_EVENT_NAMES.removed, this._removeFileItem);
108
+ this.addEventListener(FILE_PICKER_LABEL_EVENT_NAMES.filePickerLabelClickedByEnterKey, this._triggerClickOnLabel);
109
+ }
110
+ };
111
+ __decorate([
112
+ property({ type: String, attribute: 'control-id', reflect: true }),
113
+ __metadata("design:type", String)
114
+ ], HFilePicker.prototype, "controlId", void 0);
115
+ __decorate([
116
+ property({ type: String, attribute: 'control-name' }),
117
+ __metadata("design:type", String)
118
+ ], HFilePicker.prototype, "controlName", void 0);
119
+ __decorate([
120
+ property({ type: Boolean }),
121
+ __metadata("design:type", Boolean)
122
+ ], HFilePicker.prototype, "disabled", void 0);
123
+ __decorate([
124
+ property({ type: Boolean }),
125
+ __metadata("design:type", Boolean)
126
+ ], HFilePicker.prototype, "required", void 0);
127
+ __decorate([
128
+ property({ type: Boolean }),
129
+ __metadata("design:type", Boolean)
130
+ ], HFilePicker.prototype, "error", void 0);
131
+ __decorate([
132
+ property({ type: String, attribute: 'label-text' }),
133
+ __metadata("design:type", String)
134
+ ], HFilePicker.prototype, "labelText", void 0);
135
+ __decorate([
136
+ property({ type: String, attribute: 'label-icon-name' }),
137
+ __metadata("design:type", String)
138
+ ], HFilePicker.prototype, "labelIconName", void 0);
139
+ __decorate([
140
+ property({ type: String, attribute: 'remove-button-text' }),
141
+ __metadata("design:type", String)
142
+ ], HFilePicker.prototype, "removeButtonText", void 0);
143
+ __decorate([
144
+ property({ type: String, attribute: 'remove-button-icon-name' }),
145
+ __metadata("design:type", String)
146
+ ], HFilePicker.prototype, "removeButtonIconName", void 0);
147
+ __decorate([
148
+ property({ type: String }),
149
+ __metadata("design:type", String)
150
+ ], HFilePicker.prototype, "accept", void 0);
151
+ __decorate([
152
+ state(),
153
+ __metadata("design:type", Object)
154
+ ], HFilePicker.prototype, "file", void 0);
155
+ HFilePicker = __decorate([
156
+ phoenixCustomElement('h-file-picker')
157
+ ], HFilePicker);
158
+
159
+ export { HFilePicker };
160
+ //# sourceMappingURL=file_picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,27 @@
1
+ export declare const FILE_ITEM_CSS_CLASSES: {
2
+ readonly file: "file";
3
+ readonly fileName: "file__name";
4
+ readonly fileRemoveButton: "file__remove-button";
5
+ };
6
+ export declare const FILE_ITEM_EVENT_NAMES: {
7
+ readonly removed: "fileItemRemoved";
8
+ };
9
+ export declare type TFileItemConstructorOptions = {
10
+ name: string;
11
+ id: string;
12
+ };
13
+ export declare const FILE_PICKER_CONTROL_CSS_CLASSES: {
14
+ readonly filePicker: "file-picker";
15
+ readonly filePickerDisabled: "file-picker_disabled";
16
+ readonly filePickerRequired: "file-picker_required";
17
+ readonly filePickerError: "file-picker_error";
18
+ readonly filePickerHasValue: "file-picker_has-value";
19
+ readonly filePickerInput: "file-picker__input";
20
+ readonly filePickerLabel: "file-picker__label";
21
+ };
22
+ export declare const FILE_PICKER_LABEL_EVENT_NAMES: {
23
+ readonly filePickerLabelClickedByEnterKey: "filePickerLabelClickedByEnterKey";
24
+ };
25
+ export declare const FILE_PICKER_ICON_CSS_CLASSES: {
26
+ readonly filePickerIcon: "file-picker-icon";
27
+ };
@@ -0,0 +1,29 @@
1
+ const baseFileItemClass = 'file';
2
+ const FILE_ITEM_CSS_CLASSES = {
3
+ file: baseFileItemClass,
4
+ fileName: `${baseFileItemClass}__name`,
5
+ fileRemoveButton: `${baseFileItemClass}__remove-button`
6
+ };
7
+ const FILE_ITEM_EVENT_NAMES = {
8
+ removed: 'fileItemRemoved'
9
+ };
10
+ const baseFilePickerControlClass = 'file-picker';
11
+ const FILE_PICKER_CONTROL_CSS_CLASSES = {
12
+ filePicker: baseFilePickerControlClass,
13
+ filePickerDisabled: `${baseFilePickerControlClass}_disabled`,
14
+ filePickerRequired: `${baseFilePickerControlClass}_required`,
15
+ filePickerError: `${baseFilePickerControlClass}_error`,
16
+ filePickerHasValue: `${baseFilePickerControlClass}_has-value`,
17
+ filePickerInput: `${baseFilePickerControlClass}__input`,
18
+ filePickerLabel: `${baseFilePickerControlClass}__label`
19
+ };
20
+ const FILE_PICKER_LABEL_EVENT_NAMES = {
21
+ filePickerLabelClickedByEnterKey: 'filePickerLabelClickedByEnterKey'
22
+ };
23
+ const baseFilePickerIconClass = 'file-picker-icon';
24
+ const FILE_PICKER_ICON_CSS_CLASSES = {
25
+ filePickerIcon: baseFilePickerIconClass
26
+ };
27
+
28
+ export { FILE_ITEM_CSS_CLASSES, FILE_ITEM_EVENT_NAMES, FILE_PICKER_CONTROL_CSS_CLASSES, FILE_PICKER_ICON_CSS_CLASSES, FILE_PICKER_LABEL_EVENT_NAMES };
29
+ //# sourceMappingURL=file_picker_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,11 @@
1
+ import { TemplateResult } from 'lit';
2
+ import { PhoenixLightLitElement } from "../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
+ export declare class HFilePickerLabel extends PhoenixLightLitElement {
4
+ controlId: string;
5
+ labelText: string;
6
+ labelIconName: string;
7
+ private _btnController;
8
+ constructor();
9
+ protected render(): TemplateResult;
10
+ private _dispatchClickEvent;
11
+ }
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { html, nothing } from 'lit';
3
+ import { property } from 'lit/decorators';
4
+ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
6
+ import { BtnController } from '../../../controllers/btn_controller/btn_controller.js';
7
+ import { ICON_CSS_CLASSES } from '../../icon/icon_constants.js';
8
+ import { FILE_PICKER_LABEL_EVENT_NAMES, FILE_PICKER_CONTROL_CSS_CLASSES, FILE_PICKER_ICON_CSS_CLASSES } from './file_picker_constants.js';
9
+
10
+ let HFilePickerLabel = class HFilePickerLabel extends PhoenixLightLitElement {
11
+ constructor() {
12
+ super();
13
+ this._dispatchClickEvent = () => {
14
+ this.dispatchEvent(new CustomEvent(FILE_PICKER_LABEL_EVENT_NAMES.filePickerLabelClickedByEnterKey, {
15
+ bubbles: true
16
+ }));
17
+ };
18
+ this._btnController = new BtnController(this, this._dispatchClickEvent);
19
+ }
20
+ render() {
21
+ super.render();
22
+ return html `<label class="${FILE_PICKER_CONTROL_CSS_CLASSES.filePickerLabel}" for="${this.controlId}">
23
+ ${this.labelIconName
24
+ ? html `<h-icon
25
+ class="${ICON_CSS_CLASSES.icon} ${FILE_PICKER_ICON_CSS_CLASSES.filePickerIcon}"
26
+ icon-name=${this.labelIconName}
27
+ />`
28
+ : nothing}
29
+ ${this.labelText}
30
+ </label>`;
31
+ }
32
+ };
33
+ __decorate([
34
+ property({ type: String, attribute: 'control-id', reflect: true }),
35
+ __metadata("design:type", String)
36
+ ], HFilePickerLabel.prototype, "controlId", void 0);
37
+ __decorate([
38
+ property({ type: String, attribute: 'label-text' }),
39
+ __metadata("design:type", String)
40
+ ], HFilePickerLabel.prototype, "labelText", void 0);
41
+ __decorate([
42
+ property({ type: String, attribute: 'label-icon-name' }),
43
+ __metadata("design:type", String)
44
+ ], HFilePickerLabel.prototype, "labelIconName", void 0);
45
+ HFilePickerLabel = __decorate([
46
+ phoenixCustomElement('h-file-picker-label'),
47
+ __metadata("design:paramtypes", [])
48
+ ], HFilePickerLabel);
49
+
50
+ export { HFilePickerLabel };
51
+ //# sourceMappingURL=file_picker_label.js.map
@@ -0,0 +1,6 @@
1
+ import { HFilePicker } from "./file_picker";
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'h-file-picker': HFilePicker;
5
+ }
6
+ }
@@ -0,0 +1,2 @@
1
+ import '@phoenixRoot/components/form/file_picker/file_picker';
2
+ //# sourceMappingURL=file_picker_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_picker_types.js","sourceRoot":"","sources":["../../../../../../../../src/components/form/file_picker/file_picker_types.ts"],"names":[],"mappings":"AAAA,OAA4B,sDAAsD,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { PhoenixLightLitElement } from "../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
- import { PropertyValues } from '@lit/reactive-element';
3
2
  export declare class HOption extends PhoenixLightLitElement {
4
3
  value: string;
5
4
  selected: boolean;
@@ -10,7 +9,7 @@ export declare class HOption extends PhoenixLightLitElement {
10
9
  connectedCallback(): void;
11
10
  private _setupEvents;
12
11
  private _dispatchClickedEvent;
13
- updated(changedProperties: PropertyValues): void;
12
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
14
13
  private _addSelectedIcon;
15
14
  private _removeSelectedIcon;
16
15
  }
@@ -5,7 +5,6 @@ import { property } from '@lit/reactive-element/decorators.js';
5
5
  import { SELECT_OPTION_EVENT_NAMES, SELECT_RELATED_COMPONENTS_NAMES } from '../select_components_constatns.js';
6
6
  import { BtnController } from '../../../../../controllers/btn_controller/btn_controller.js';
7
7
  import { SELECT_OPTION_CSS_CLASSES } from './select_option_constants.js';
8
- import '@lit/reactive-element';
9
8
 
10
9
  let HOption = class HOption extends PhoenixLightLitElement {
11
10
  constructor() {
@@ -34,10 +33,12 @@ let HOption = class HOption extends PhoenixLightLitElement {
34
33
  _setupEvents() {
35
34
  this.addEventListener('click', this._dispatchClickedEvent);
36
35
  }
37
- updated(changedProperties) {
38
- super.updated(changedProperties);
39
- if (changedProperties.has('selected'))
40
- this.selected ? this._addSelectedIcon() : this._removeSelectedIcon();
36
+ attributeChangedCallback(name, _old, value) {
37
+ super.attributeChangedCallback(name, _old, value);
38
+ switch (name) {
39
+ case 'selected':
40
+ this.selected ? this._addSelectedIcon() : this._removeSelectedIcon();
41
+ }
41
42
  }
42
43
  _addSelectedIcon() {
43
44
  this._$checkedIcon = document.createElement('h-icon');
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -51,7 +51,7 @@ let HSelectToggler = class HSelectToggler extends PhoenixLightLitElement {
51
51
  ${observe(this.selectedOptions$, (selectOptions) => {
52
52
  var _a;
53
53
  if (!selectOptions.length)
54
- return html `${(_a = this.getSlot(SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : html `<span class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerPlaceholder}>Select</span>`}`;
54
+ return html `${(_a = this.getSlot(SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : 'Select'}`;
55
55
  return html ` <ul class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
56
56
  ${this.isMultiselect
57
57
  ? selectOptions.map((option) => html ` <li>
@@ -13,15 +13,15 @@ export declare abstract class BaseSelectController implements ISelectController,
13
13
  constructor({ host }: SelectControllerConstructorOptions);
14
14
  private _setupComputedStateObserver;
15
15
  private _calculateValuesRelatedToOptions;
16
- toggle(option: SelectOption): void;
17
- abstract select(option: SelectOption): void;
18
- remove(optionValue: string): void;
19
- add(option: SelectOption, position?: number): void;
20
- replace(options: SelectOption[]): void;
21
- deselectAll(): void;
22
- deselect(option: SelectOption): void;
23
- filter(value: string): void;
24
- protected requestUpdate(): void;
25
- getOption(selectValue: string): SelectOption | undefined;
16
+ toggleOption(option: SelectOption): void;
17
+ abstract selectOption(option: SelectOption): void;
18
+ removeOption(optionValue: string): void;
19
+ addOption(option: SelectOption, position?: number): void;
20
+ replaceOptions(options: SelectOption[]): void;
21
+ deselectOptions(): void;
22
+ deselectOption(option: SelectOption): void;
23
+ filterOptions(value: string): void;
24
+ protected requestOptionsUpdate(): void;
25
+ getSelectOption(selectValue: string): SelectOption | undefined;
26
26
  hostConnected(): void;
27
27
  }
@@ -25,16 +25,16 @@ class BaseSelectController {
25
25
  this._optionsObserver = new Observer(this._calculateValuesRelatedToOptions);
26
26
  this.options$.subscribe(this._optionsObserver);
27
27
  }
28
- toggle(option) {
29
- option.selected ? this.deselect(option) : this.select(option);
28
+ toggleOption(option) {
29
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
30
30
  }
31
- remove(optionValue) {
31
+ removeOption(optionValue) {
32
32
  const options = this.options$.getValue();
33
33
  if (!options)
34
34
  return;
35
35
  this.options$.notify(options.filter((option) => option.value !== optionValue));
36
36
  }
37
- add(option, position) {
37
+ addOption(option, position) {
38
38
  var _a;
39
39
  const options = (_a = this.options$.getValue()) !== null && _a !== void 0 ? _a : [];
40
40
  if (position === undefined) {
@@ -44,22 +44,22 @@ class BaseSelectController {
44
44
  }
45
45
  this.options$.notify([...options.slice(0, position - 1), option, ...options.slice(position - 1)]);
46
46
  }
47
- replace(options) {
47
+ replaceOptions(options) {
48
48
  this.options$.notify(options);
49
49
  }
50
- deselectAll() {
50
+ deselectOptions() {
51
51
  var _a;
52
52
  (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
53
53
  this.selectedOptions$.notify([]);
54
- this.requestUpdate();
54
+ this.requestOptionsUpdate();
55
55
  }
56
- deselect(option) {
56
+ deselectOption(option) {
57
57
  var _a;
58
58
  (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
59
59
  this.selectedOptions$.notify([]);
60
- this.requestUpdate();
60
+ this.requestOptionsUpdate();
61
61
  }
62
- filter(value) {
62
+ filterOptions(value) {
63
63
  const selectOptions = this.options$.getValue();
64
64
  if (!selectOptions)
65
65
  return;
@@ -68,16 +68,16 @@ class BaseSelectController {
68
68
  filtered.forEach((option) => {
69
69
  option.hidden = false;
70
70
  });
71
- this.requestUpdate();
71
+ this.requestOptionsUpdate();
72
72
  }
73
- requestUpdate() {
73
+ requestOptionsUpdate() {
74
74
  const selectOptions = this.options$.getValue();
75
75
  if (!selectOptions)
76
76
  return;
77
77
  this.options$.notify([...selectOptions]);
78
78
  this.host.requestUpdate();
79
79
  }
80
- getOption(selectValue) {
80
+ getSelectOption(selectValue) {
81
81
  var _a;
82
82
  return (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.find((option) => option.value === selectValue);
83
83
  }
@@ -1,7 +1,7 @@
1
1
  import { SelectOption } from "../model/select_option";
2
2
  import { BaseSelectController } from "./base_select_controller";
3
3
  export declare class MultiSelectController extends BaseSelectController {
4
- toggle(option: SelectOption): void;
5
- select(option: SelectOption): void;
6
- deselect(option: SelectOption): void;
4
+ toggleOption(option: SelectOption): void;
5
+ selectOption(option: SelectOption): void;
6
+ deselectOption(option: SelectOption): void;
7
7
  }
@@ -1,18 +1,18 @@
1
1
  import { BaseSelectController } from './base_select_controller.js';
2
2
 
3
3
  class MultiSelectController extends BaseSelectController {
4
- toggle(option) {
5
- option.selected ? this.deselect(option) : this.select(option);
4
+ toggleOption(option) {
5
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
6
6
  }
7
- select(option) {
7
+ selectOption(option) {
8
8
  option.selected = true;
9
9
  this.selectedOptions$.notify((selectedOptions) => [...selectedOptions, option]);
10
- this.requestUpdate();
10
+ this.requestOptionsUpdate();
11
11
  }
12
- deselect(option) {
12
+ deselectOption(option) {
13
13
  option.selected = false;
14
14
  this.selectedOptions$.notify((selectedOptions) => selectedOptions.filter((currOption) => currOption.value !== option.value));
15
- this.requestUpdate();
15
+ this.requestOptionsUpdate();
16
16
  }
17
17
  }
18
18
 
@@ -1,5 +1,5 @@
1
1
  import { SelectOption } from "../model/select_option";
2
2
  import { BaseSelectController } from "./base_select_controller";
3
3
  export declare class SelectController extends BaseSelectController {
4
- select(option: SelectOption): void;
4
+ selectOption(option: SelectOption): void;
5
5
  }