@seniorsistemas/data-seniorx-core 2.3.0 → 3.0.0
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.
- package/core/constants/autocomplete.const.d.ts +4 -0
- package/core/constants/context-selector.const.d.ts +1 -0
- package/core/constants/gantt.const.d.ts +7 -0
- package/core/constants/hyperlink.const.d.ts +1 -0
- package/core/constants/inline-edit.const.d.ts +4 -0
- package/core/constants/kanban.const.d.ts +2 -0
- package/core/constants/pin-code-field.const.d.ts +5 -0
- package/core/constants/rating-scale.const.d.ts +1 -0
- package/core/constants/spotlight.const.d.ts +8 -0
- package/core/constants/star-rating.const.d.ts +4 -0
- package/core/constants/stepper.const.d.ts +1 -0
- package/core/constants/tiered-menu.const.d.ts +3 -0
- package/core/types/autocomplete.type.d.ts +9 -0
- package/core/types/chat.type.d.ts +12 -0
- package/core/types/checkbox-list.type.d.ts +12 -0
- package/core/types/gantt.type.d.ts +22 -0
- package/core/types/grid-menu.type.d.ts +13 -0
- package/core/types/hyperlink.type.d.ts +1 -0
- package/core/types/image-cropper.type.d.ts +20 -0
- package/core/types/inline-edit.type.d.ts +26 -0
- package/core/types/kanban.type.d.ts +36 -0
- package/core/types/panel.type.d.ts +16 -0
- package/core/types/profile-picture-picker.type.d.ts +9 -0
- package/core/types/rating-scale.type.d.ts +5 -0
- package/core/types/select-button.type.d.ts +1 -0
- package/core/types/spotlight.type.d.ts +34 -0
- package/core/types/star-rating.type.d.ts +1 -0
- package/core/types/stepper.type.d.ts +20 -0
- package/core/types/table-column.type.d.ts +3 -1
- package/core/types/table-options.type.d.ts +8 -2
- package/core/types/table.type.d.ts +1 -1
- package/core/types/tiered-menu.type.d.ts +16 -0
- package/core/types/tree.type.d.ts +25 -0
- package/core/types/workspace-switch.type.d.ts +6 -0
- package/core/utils/body-scroll.util.d.ts +2 -0
- package/core/utils/roving-focus.util.d.ts +2 -0
- package/core/utils/selection.util.d.ts +3 -0
- package/core/utils/tree.util.d.ts +4 -0
- package/esm2022/core/constants/autocomplete.const.mjs +5 -0
- package/esm2022/core/constants/context-selector.const.mjs +2 -0
- package/esm2022/core/constants/gantt.const.mjs +7 -0
- package/esm2022/core/constants/hyperlink.const.mjs +2 -1
- package/esm2022/core/constants/inline-edit.const.mjs +5 -0
- package/esm2022/core/constants/kanban.const.mjs +3 -0
- package/esm2022/core/constants/pin-code-field.const.mjs +6 -0
- package/esm2022/core/constants/rating-scale.const.mjs +2 -0
- package/esm2022/core/constants/spotlight.const.mjs +9 -0
- package/esm2022/core/constants/star-rating.const.mjs +5 -0
- package/esm2022/core/constants/stepper.const.mjs +2 -0
- package/esm2022/core/constants/table.const.mjs +2 -2
- package/esm2022/core/constants/tiered-menu.const.mjs +4 -0
- package/esm2022/core/types/autocomplete.type.mjs +2 -0
- package/esm2022/core/types/chat.type.mjs +2 -0
- package/esm2022/core/types/checkbox-list.type.mjs +2 -0
- package/esm2022/core/types/gantt.type.mjs +2 -0
- package/esm2022/core/types/grid-menu.type.mjs +2 -0
- package/esm2022/core/types/hyperlink.type.mjs +1 -1
- package/esm2022/core/types/image-cropper.type.mjs +2 -0
- package/esm2022/core/types/inline-edit.type.mjs +2 -0
- package/esm2022/core/types/kanban.type.mjs +2 -0
- package/esm2022/core/types/panel.type.mjs +9 -0
- package/esm2022/core/types/profile-picture-picker.type.mjs +2 -0
- package/esm2022/core/types/rating-scale.type.mjs +2 -0
- package/esm2022/core/types/select-button.type.mjs +1 -1
- package/esm2022/core/types/spotlight.type.mjs +2 -0
- package/esm2022/core/types/star-rating.type.mjs +2 -0
- package/esm2022/core/types/stepper.type.mjs +7 -0
- package/esm2022/core/types/table-column.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/table.type.mjs +1 -1
- package/esm2022/core/types/tiered-menu.type.mjs +2 -0
- package/esm2022/core/types/tree.type.mjs +2 -0
- package/esm2022/core/types/workspace-switch.type.mjs +2 -0
- package/esm2022/core/utils/body-scroll.util.mjs +19 -0
- package/esm2022/core/utils/combobox.util.mjs +3 -2
- package/esm2022/core/utils/roving-focus.util.mjs +20 -0
- package/esm2022/core/utils/selection.util.mjs +13 -0
- package/esm2022/core/utils/string.util.mjs +8 -3
- package/esm2022/core/utils/tree.util.mjs +23 -0
- package/esm2022/features/accordion/accordion.component.mjs +2 -2
- package/esm2022/features/accordion/{accordion-item.component.mjs → components/accordion-item/accordion-item.component.mjs} +7 -7
- package/esm2022/features/autocomplete/autocomplete.component.mjs +501 -0
- package/esm2022/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +30 -0
- package/esm2022/features/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2022/features/card-list/card/card.component.mjs +63 -99
- package/esm2022/features/chat/chat.component.mjs +126 -0
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +125 -0
- package/esm2022/features/combobox/combobox.component.mjs +20 -8
- package/esm2022/features/context-selector/context-selector.component.mjs +198 -0
- package/esm2022/features/filters/filters.component.mjs +1 -1
- package/esm2022/features/gantt/components/gantt-side-table/gantt-side-table.component.mjs +17 -0
- package/esm2022/features/gantt/gantt-date.utils.mjs +97 -0
- package/esm2022/features/gantt/gantt.component.mjs +89 -0
- package/esm2022/features/gantt/gantt.engine.mjs +662 -0
- package/esm2022/features/grid-menu/grid-menu.component.mjs +104 -0
- package/esm2022/features/hyperlink/hyperlink.component.mjs +7 -4
- package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
- package/esm2022/features/image-cropper/image-cropper.component.mjs +218 -0
- package/esm2022/features/image-cropper/services/image-cropper.service.mjs +50 -0
- package/esm2022/features/infinite-scroll/infinite-scroll.directive.mjs +89 -0
- package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +38 -0
- package/esm2022/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +29 -0
- package/esm2022/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.mjs +29 -0
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +131 -0
- package/esm2022/features/inline-edit/fields/inline-edit-field.mjs +17 -0
- package/esm2022/features/inline-edit/fields/inline-edit-number-field.mjs +15 -0
- package/esm2022/features/inline-edit/fields/inline-edit-text-field.mjs +11 -0
- package/esm2022/features/inline-edit/fields/inline-edit-textarea-field.mjs +15 -0
- package/esm2022/features/inline-edit/inline-edit.component.mjs +27 -0
- package/esm2022/features/interactive-content/interactive-content.directive.mjs +140 -0
- package/esm2022/features/kanban/components/kanban-column/kanban-column.component.mjs +88 -0
- package/esm2022/features/kanban/components/kanban-item/kanban-item.component.mjs +72 -0
- package/esm2022/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +19 -0
- package/esm2022/features/kanban/directives/kanban-template.directive.mjs +22 -0
- package/esm2022/features/kanban/kanban.component.mjs +198 -0
- package/esm2022/features/kanban/services/kanban-event.service.mjs +27 -0
- package/esm2022/features/loading-state/loading-state.component.mjs +3 -62
- package/esm2022/features/mouse-events/directives/double-click.directive.mjs +34 -0
- package/esm2022/features/mouse-events/directives/long-press.directive.mjs +61 -0
- package/esm2022/features/paginator/paginator.component.mjs +8 -3
- package/esm2022/features/panel/panel.component.mjs +43 -11
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +234 -0
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +330 -0
- package/esm2022/features/rating-scale/rating-scale.component.mjs +86 -0
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +4 -6
- package/esm2022/features/select-button/select-button.component.mjs +7 -4
- package/esm2022/features/speech-recognition/services/speech-recognition.service.mjs +148 -0
- package/esm2022/features/speech-recognition/services/text-to-speech.service.mjs +88 -0
- package/esm2022/features/speech-recognition/speech-recognition.component.mjs +243 -0
- package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +521 -0
- package/esm2022/features/spotlight/directives/spotlight-step.directive.mjs +38 -0
- package/esm2022/features/spotlight/services/spotlight-tour.service.mjs +179 -0
- package/esm2022/features/spotlight/spotlight.component.mjs +160 -0
- package/esm2022/features/star-rating/star-rating.component.mjs +95 -0
- package/esm2022/features/stepper/stepper.component.mjs +86 -0
- package/esm2022/features/switch/switch.component.mjs +12 -8
- package/esm2022/features/tab/{tab-item.component.mjs → components/tab-item/tab-item.component.mjs} +1 -1
- package/esm2022/features/tab/tab.component.mjs +4 -4
- package/esm2022/features/table/components/table-cell-content.component.mjs +14 -5
- package/esm2022/features/table/table.component.mjs +220 -29
- package/esm2022/features/table/utils/table-data.util.mjs +71 -8
- package/esm2022/features/table/utils/table-layout.util.mjs +21 -1
- package/esm2022/features/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +367 -0
- package/esm2022/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +11 -0
- package/esm2022/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +97 -0
- package/esm2022/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +181 -0
- package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +246 -0
- package/esm2022/features/tiered-menu/services/tiered-menu.event.service.mjs +16 -0
- package/esm2022/features/tiered-menu/services/tiered-menu.global.service.mjs +12 -0
- package/esm2022/features/tiered-menu/services/tiered-menu.service.mjs +49 -0
- package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +169 -0
- package/esm2022/features/tree/tree.component.mjs +211 -0
- package/esm2022/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.mjs +41 -0
- package/esm2022/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.mjs +38 -0
- package/esm2022/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.mjs +29 -0
- package/esm2022/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.mjs +29 -0
- package/esm2022/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.mjs +35 -0
- package/esm2022/features/visual-sql-editor/services/visual-sql-editor-flow.service.mjs +106 -0
- package/esm2022/features/visual-sql-editor/services/visual-sql-editor-state.service.mjs +230 -0
- package/esm2022/features/visual-sql-editor/types/visual-sql-editor.types.mjs +2 -0
- package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.mjs +72 -0
- package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sql.util.mjs +281 -0
- package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-text.util.mjs +37 -0
- package/esm2022/features/visual-sql-editor/utils/visual-sql-editor.constants.mjs +89 -0
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +172 -630
- package/esm2022/locales/en.json +351 -3
- package/esm2022/locales/es-CO.json +351 -3
- package/esm2022/locales/pt.json +351 -3
- package/esm2022/providers/features.provider.mjs +40 -4
- package/esm2022/public-api.mjs +56 -3
- package/features/accordion/accordion.component.d.ts +1 -1
- package/features/accordion/{accordion-item.component.d.ts → components/accordion-item/accordion-item.component.d.ts} +1 -1
- package/features/autocomplete/autocomplete.component.d.ts +102 -0
- package/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +11 -0
- package/features/card-list/card/card.component.d.ts +14 -34
- package/features/chat/chat.component.d.ts +31 -0
- package/features/checkbox-list/checkbox-list.component.d.ts +26 -0
- package/features/combobox/combobox.component.d.ts +2 -1
- package/features/context-selector/context-selector.component.d.ts +37 -0
- package/features/gantt/components/gantt-side-table/gantt-side-table.component.d.ts +8 -0
- package/features/gantt/gantt-date.utils.d.ts +36 -0
- package/features/gantt/gantt.component.d.ts +24 -0
- package/features/gantt/gantt.engine.d.ts +52 -0
- package/features/grid-menu/grid-menu.component.d.ts +29 -0
- package/features/hyperlink/hyperlink.component.d.ts +2 -1
- package/features/image-cropper/image-cropper.component.d.ts +43 -0
- package/features/image-cropper/services/image-cropper.service.d.ts +13 -0
- package/features/infinite-scroll/infinite-scroll.directive.d.ts +25 -0
- package/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +13 -0
- package/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +13 -0
- package/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.d.ts +13 -0
- package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +37 -0
- package/features/inline-edit/fields/inline-edit-field.d.ts +12 -0
- package/features/inline-edit/fields/inline-edit-number-field.d.ts +9 -0
- package/features/inline-edit/fields/inline-edit-text-field.d.ts +7 -0
- package/features/inline-edit/fields/inline-edit-textarea-field.d.ts +9 -0
- package/features/inline-edit/inline-edit.component.d.ts +13 -0
- package/features/interactive-content/interactive-content.directive.d.ts +31 -0
- package/features/kanban/components/kanban-column/kanban-column.component.d.ts +22 -0
- package/features/kanban/components/kanban-item/kanban-item.component.d.ts +23 -0
- package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +8 -0
- package/features/kanban/directives/kanban-template.directive.d.ts +10 -0
- package/features/kanban/kanban.component.d.ts +32 -0
- package/features/kanban/services/kanban-event.service.d.ts +15 -0
- package/features/loading-state/loading-state.component.d.ts +0 -2
- package/features/mouse-events/directives/double-click.directive.d.ts +11 -0
- package/features/mouse-events/directives/long-press.directive.d.ts +14 -0
- package/features/panel/panel.component.d.ts +12 -3
- package/features/pin-code-field/pin-code-field.component.d.ts +44 -0
- package/features/profile-picture-picker/profile-picture-picker.component.d.ts +77 -0
- package/features/rating-scale/rating-scale.component.d.ts +24 -0
- package/features/select-button/select-button.component.d.ts +2 -1
- package/features/speech-recognition/services/speech-recognition.service.d.ts +29 -0
- package/features/speech-recognition/services/text-to-speech.service.d.ts +24 -0
- package/features/speech-recognition/speech-recognition.component.d.ts +50 -0
- package/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.d.ts +59 -0
- package/features/spotlight/directives/spotlight-step.directive.d.ts +13 -0
- package/features/spotlight/services/spotlight-tour.service.d.ts +46 -0
- package/features/spotlight/spotlight.component.d.ts +59 -0
- package/features/star-rating/star-rating.component.d.ts +26 -0
- package/features/stepper/stepper.component.d.ts +23 -0
- package/features/switch/switch.component.d.ts +2 -1
- package/features/tab/tab.component.d.ts +1 -1
- package/features/table/components/table-cell-content.component.d.ts +4 -3
- package/features/table/table.component.d.ts +40 -5
- package/features/table/utils/table-data.util.d.ts +1 -0
- package/features/table/utils/table-layout.util.d.ts +1 -0
- package/features/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +49 -0
- package/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +5 -0
- package/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +19 -0
- package/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +26 -0
- package/features/tiered-menu/directives/tiered-menu.directive.d.ts +44 -0
- package/features/tiered-menu/services/tiered-menu.event.service.d.ts +13 -0
- package/features/tiered-menu/services/tiered-menu.global.service.d.ts +7 -0
- package/features/tiered-menu/services/tiered-menu.service.d.ts +14 -0
- package/features/tree/components/tree-node-item/tree-node-item.component.d.ts +37 -0
- package/features/tree/tree.component.d.ts +37 -0
- package/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.d.ts +18 -0
- package/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.d.ts +17 -0
- package/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.d.ts +13 -0
- package/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.d.ts +13 -0
- package/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.d.ts +15 -0
- package/features/visual-sql-editor/services/visual-sql-editor-flow.service.d.ts +26 -0
- package/features/visual-sql-editor/services/visual-sql-editor-state.service.d.ts +72 -0
- package/features/visual-sql-editor/types/visual-sql-editor.types.d.ts +182 -0
- package/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.d.ts +14 -0
- package/features/visual-sql-editor/utils/visual-sql-editor-sql.util.d.ts +81 -0
- package/features/visual-sql-editor/utils/visual-sql-editor-text.util.d.ts +15 -0
- package/features/visual-sql-editor/utils/visual-sql-editor.constants.d.ts +36 -0
- package/features/visual-sql-editor/visual-sql-editor.component.d.ts +37 -199
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14883 -6353
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +8 -8
- package/public-api.d.ts +72 -2
- package/src/locales/en.json +353 -15
- package/src/locales/es-CO.json +352 -14
- package/src/locales/pt.json +352 -14
- package/styles/sdc-global-variables.scss +1 -1
- package/styles.css +1 -1
- /package/features/tab/{tab-item.component.d.ts → components/tab-item/tab-item.component.d.ts} +0 -0
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
import { TABLE_DEFAULT_ROW_ID_PREVIEW_LENGTH, TABLE_INDEX_ZERO } from '../../../core/constants/table.const';
|
|
2
2
|
import { formatNumericValue } from '../../../core/utils/numeric.util';
|
|
3
|
+
function stringifyUnknown(value) {
|
|
4
|
+
if (value == null) {
|
|
5
|
+
return '';
|
|
6
|
+
}
|
|
7
|
+
if (typeof value === 'string') {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
|
|
11
|
+
return String(value);
|
|
12
|
+
}
|
|
13
|
+
if (Array.isArray(value)) {
|
|
14
|
+
return value.map((entry) => stringifyUnknown(entry)).join(' ');
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'object') {
|
|
17
|
+
try {
|
|
18
|
+
return JSON.stringify(value);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
3
26
|
export function getObjectValue(source, key) {
|
|
4
27
|
if (!source || typeof source !== 'object') {
|
|
5
28
|
return undefined;
|
|
@@ -46,23 +69,63 @@ export function formatTableCurrency(value, currency = 'BRL') {
|
|
|
46
69
|
});
|
|
47
70
|
}
|
|
48
71
|
export function toTableTextValue(value) {
|
|
49
|
-
return
|
|
72
|
+
return stringifyUnknown(value);
|
|
50
73
|
}
|
|
51
74
|
export function resolveRowIdentityLabel(rowIdentity) {
|
|
52
75
|
if (rowIdentity.name) {
|
|
53
|
-
return
|
|
76
|
+
return stringifyUnknown(rowIdentity.name);
|
|
54
77
|
}
|
|
55
78
|
if (rowIdentity.title) {
|
|
56
|
-
return
|
|
79
|
+
return stringifyUnknown(rowIdentity.title);
|
|
57
80
|
}
|
|
58
81
|
if (rowIdentity.label) {
|
|
59
|
-
return
|
|
82
|
+
return stringifyUnknown(rowIdentity.label);
|
|
60
83
|
}
|
|
61
84
|
if (rowIdentity.id) {
|
|
62
|
-
return
|
|
85
|
+
return stringifyUnknown(rowIdentity.id);
|
|
63
86
|
}
|
|
64
87
|
return 'item';
|
|
65
88
|
}
|
|
89
|
+
export function resolveRowSelectionKey(row) {
|
|
90
|
+
if (!row || typeof row !== 'object') {
|
|
91
|
+
return `primitive:${String(row)}`;
|
|
92
|
+
}
|
|
93
|
+
const rowIdentity = row;
|
|
94
|
+
// Try standard identity fields
|
|
95
|
+
const idKey = tryResolveIdField(rowIdentity, 'id');
|
|
96
|
+
if (idKey) {
|
|
97
|
+
return idKey;
|
|
98
|
+
}
|
|
99
|
+
const nameKey = tryResolveIdField(rowIdentity, 'name');
|
|
100
|
+
if (nameKey) {
|
|
101
|
+
return nameKey;
|
|
102
|
+
}
|
|
103
|
+
const titleKey = tryResolveIdField(rowIdentity, 'title');
|
|
104
|
+
if (titleKey) {
|
|
105
|
+
return titleKey;
|
|
106
|
+
}
|
|
107
|
+
const labelKey = tryResolveIdField(rowIdentity, 'label');
|
|
108
|
+
if (labelKey) {
|
|
109
|
+
return labelKey;
|
|
110
|
+
}
|
|
111
|
+
// Fallback: serialize or string representation
|
|
112
|
+
return serializeRowFallback(row);
|
|
113
|
+
}
|
|
114
|
+
function tryResolveIdField(obj, field) {
|
|
115
|
+
const value = obj[field];
|
|
116
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
117
|
+
return `${field}:${stringifyUnknown(value)}`;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
function serializeRowFallback(row) {
|
|
122
|
+
try {
|
|
123
|
+
return `json:${JSON.stringify(row)}`;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return `fallback:${String(row)}`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
66
129
|
export function buildRowCheckboxId(row) {
|
|
67
130
|
if (!row || typeof row !== 'object') {
|
|
68
131
|
return `checkbox-row-${String(row)}`;
|
|
@@ -71,7 +134,7 @@ export function buildRowCheckboxId(row) {
|
|
|
71
134
|
const rowId = rowIdentity.id ??
|
|
72
135
|
rowIdentity.name ??
|
|
73
136
|
JSON.stringify(row).substring(TABLE_INDEX_ZERO, TABLE_DEFAULT_ROW_ID_PREVIEW_LENGTH);
|
|
74
|
-
return `checkbox-row-${
|
|
137
|
+
return `checkbox-row-${stringifyUnknown(rowId).replace(/[^a-zA-Z0-9]/g, '-')}`;
|
|
75
138
|
}
|
|
76
139
|
export function filterTableRows(data, cols, query, resolveValue) {
|
|
77
140
|
const normalizedQuery = query.trim().toLowerCase();
|
|
@@ -90,7 +153,7 @@ export function filterTableRows(data, cols, query, resolveValue) {
|
|
|
90
153
|
if (Array.isArray(value)) {
|
|
91
154
|
return value.join(' ').toLowerCase().includes(normalizedQuery);
|
|
92
155
|
}
|
|
93
|
-
return
|
|
156
|
+
return stringifyUnknown(value).toLowerCase().includes(normalizedQuery);
|
|
94
157
|
}));
|
|
95
158
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS91dGlscy90YWJsZS1kYXRhLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDakIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWUsRUFBRSxHQUFXO0lBQ3pELElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQVEsTUFBa0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBNEI7SUFDckUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvQixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsR0FBTSxFQUNOLElBQXdCLEVBQ3hCLEtBQTRCO0lBRTVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFD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V19JRF9QUkVWSUVXX0xFTkdUSCxcbiAgVEFCTEVfSU5ERVhfWkVST1xufSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnN0YW50cy90YWJsZS5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IFJvd0Jhc2UsIFRhYmxlQ29sdW1uLCBUYWJsZVJvd0lkZW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy90YWJsZS50eXBlJztcbmltcG9ydCB7IGZvcm1hdE51bWVyaWNWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFZhbHVlKHNvdXJjZTogdW5rbm93biwga2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgaWYgKCFzb3VyY2UgfHwgdHlwZW9mIHNvdXJjZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIChzb3VyY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoUGFydHMocGF0aDogc3RyaW5nLCBjYWNoZTogTWFwPHN0cmluZywgc3RyaW5nW10+KTogc3RyaW5nW10ge1xuICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQocGF0aCk7XG5cbiAgaWYgKGNhY2hlZCkge1xuICAgIHJldHVybiBjYWNoZWQ7XG4gIH1cblxuICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgY2FjaGUuc2V0KHBhdGgsIHBhcnRzKTtcbiAgcmV0dXJuIHBhcnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVzdGVkVmFsdWU8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPihcbiAgb2JqOiBULFxuICBwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNhY2hlOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT5cbik6IHVua25vd24ge1xuICBpZiAoIXBhdGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcGFydHMgPSBnZXRQYXRoUGFydHMocGF0aCwgY2FjaGUpO1xuICBsZXQgYWNjdW11bGF0b3I6IHVua25vd24gPSBvYmo7XG5cbiAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgY29uc3QgbmV4dCA9IGdldE9iamVjdFZhbHVlKGFjY3VtdWxhdG9yLCBwYXJ0KTtcblxuICAgIGlmICh0eXBlb2YgbmV4dCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYWNjdW11bGF0b3IgPSBuZXh0O1xuICB9XG5cbiAgcmV0dXJuIGFjY3VtdWxhdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGFibGVEYXRlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkKS5mb3JtYXQobmV3IERhdGUodmFsdWUgYXMgc3RyaW5nKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB0b1RhYmxlVGV4dFZhbHVlKHZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGFibGVDdXJyZW5jeSh2YWx1ZTogdW5rbm93biwgY3VycmVuY3kgPSAnQlJMJyk6IHN0cmluZyB7XG4gIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogbnVsbDtcblxuICByZXR1cm4gZm9ybWF0TnVtZXJpY1ZhbHVlKG51bWVyaWNWYWx1ZSwge1xuICAgIHN0eWxlOiAnY3VycmVuY3knLFxuICAgIGN1cnJlbmN5XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9UYWJsZVRleHRWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBTdHJpbmcodmFsdWUgPz8gJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJvd0lkZW50aXR5TGFiZWwocm93SWRlbnRpdHk6IFRhYmxlUm93SWRlbnRpdHkpOiBzdHJpbmcge1xuICBpZiAocm93SWRlbnRpdHkubmFtZSkge1xuICAgIHJldHVybiBTdHJpbmcocm93SWRlbnRpdHkubmFtZSk7XG4gIH1cblxuICBpZiAocm93SWRlbnRpdHkudGl0bGUpIHtcbiAgICByZXR1cm4gU3RyaW5nKHJvd0lkZW50aXR5LnRpdGxlKTtcbiAgfVxuXG4gIGlmIChyb3dJZGVudGl0eS5sYWJlbCkge1xuICAgIHJldHVybiBTdHJpbmcocm93SWRlbnRpdHkubGFiZWwpO1xuICB9XG5cbiAgaWYgKHJvd0lkZW50aXR5LmlkKSB7XG4gICAgcmV0dXJuIFN0cmluZyhyb3dJZGVudGl0eS5pZCk7XG4gIH1cblxuICByZXR1cm4gJ2l0ZW0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSb3dDaGVja2JveElkPFQgZXh0ZW5kcyBSb3dCYXNlID0gUm93QmFzZT4ocm93OiBUKTogc3RyaW5nIHtcbiAgaWYgKCFyb3cgfHwgdHlwZW9mIHJvdyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYGNoZWNrYm94LXJvdy0ke1N0cmluZyhyb3cpfWA7XG4gIH1cblxuICBjb25zdCByb3dJZGVudGl0eSA9IHJvdyBhcyBUYWJsZVJvd0lkZW50aXR5O1xuICBjb25zdCByb3dJZCA9XG4gICAgcm93SWRlbnRpdHkuaWQgPz9cbiAgICByb3dJZGVudGl0eS5uYW1lID8/XG4gICAgSlNPTi5zdHJpbmdpZnkocm93KS5zdWJzdHJpbmcoVEFCTEVfSU5ERVhfWkVSTywgVEFCTEVfREVGQVVMVF9ST1dfSURfUFJFVklFV19MRU5HVEgpO1xuXG4gIHJldHVybiBgY2hlY2tib3gtcm93LSR7U3RyaW5nKHJvd0lkKS5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJy0nKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVGFibGVSb3dzPFQgZXh0ZW5kcyBSb3dCYXNlID0gUm93QmFzZT4oXG4gIGRhdGE6IFRbXSxcbiAgY29sczogVGFibGVDb2x1bW48VD5bXSxcbiAgcXVlcnk6IHN0cmluZyxcbiAgcmVzb2x2ZVZhbHVlOiAocm93OiBULCBmaWVsZD86IHN0cmluZykgPT4gdW5rbm93blxuKTogVFtdIHtcbiAgY29uc3Qgbm9ybWFsaXplZFF1ZXJ5ID0gcXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgaWYgKCFub3JtYWxpemVkUXVlcnkpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0IGZpZWxkcyA9IGNvbHNcbiAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbi5zZWFyY2hhYmxlID8/IHRydWUpXG4gICAgLmZpbHRlcigoY29sdW1uKTogY29sdW1uIGlzIHR5cGVvZiBjb2x1bW4gJiB7IGZpZWxkOiBzdHJpbmcgfSA9PiAhIWNvbHVtbi5maWVsZClcbiAgICAubWFwKChjb2x1bW4pID0+IGNvbHVtbi5maWVsZCk7XG5cbiAgaWYgKGZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHJldHVybiBkYXRhLmZpbHRlcigocm93KSA9PlxuICAgIGZpZWxkcy5zb21lKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUocm93LCBmaWVsZCk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUuam9pbignICcpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobm9ybWFsaXplZFF1ZXJ5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSA/PyAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhub3JtYWxpemVkUXVlcnkpO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS91dGlscy90YWJsZS1kYXRhLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDakIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxTQUFTLGdCQUFnQixDQUFDLEtBQWM7SUFDdEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDekYsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFD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LENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbkQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUk7U0FDaEIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztTQUM3QyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQStDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUMvRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBUQUJMRV9ERUZBVUxUX1JPV19JRF9QUkVWSUVXX0xFTkdUSCxcbiAgVEFCTEVfSU5ERVhfWkVST1xufSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnN0YW50cy90YWJsZS5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IFJvd0Jhc2UsIFRhYmxlQ29sdW1uLCBUYWJsZVJvd0lkZW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy90YWJsZS50eXBlJztcbmltcG9ydCB7IGZvcm1hdE51bWVyaWNWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuZnVuY3Rpb24gc3RyaW5naWZ5VW5rbm93bih2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnKSB7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKChlbnRyeSkgPT4gc3RyaW5naWZ5VW5rbm93bihlbnRyeSkpLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0VmFsdWUoc291cmNlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd24ge1xuICBpZiAoIXNvdXJjZSB8fCB0eXBlb2Ygc291cmNlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gKHNvdXJjZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhQYXJ0cyhwYXRoOiBzdHJpbmcsIGNhY2hlOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChwYXRoKTtcblxuICBpZiAoY2FjaGVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZDtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLicpO1xuICBjYWNoZS5zZXQocGF0aCwgcGFydHMpO1xuICByZXR1cm4gcGFydHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZTxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+KFxuICBvYmo6IFQsXG4gIHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgY2FjaGU6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPlxuKTogdW5rbm93biB7XG4gIGlmICghcGF0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXJ0cyA9IGdldFBhdGhQYXJ0cyhwYXRoLCBjYWNoZSk7XG4gIGxldCBhY2N1bXVsYXRvcjogdW5rbm93biA9IG9iajtcblxuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBjb25zdCBuZXh0ID0gZ2V0T2JqZWN0VmFsdWUoYWNjdW11bGF0b3IsIHBhcnQpO1xuXG4gICAgaWYgKHR5cGVvZiBuZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhY2N1bXVsYXRvciA9IG5leHQ7XG4gIH1cblxuICByZXR1cm4gYWNjdW11bGF0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUYWJsZURhdGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQpLmZvcm1hdChuZXcgRGF0ZSh2YWx1ZSBhcyBzdHJpbmcpKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHRvVGFibGVUZXh0VmFsdWUodmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUYWJsZUN1cnJlbmN5KHZhbHVlOiB1bmtub3duLCBjdXJyZW5jeSA9ICdCUkwnKTogc3RyaW5nIHtcbiAgY29uc3QgbnVtZXJpY1ZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBudWxsO1xuXG4gIHJldHVybiBmb3JtYXROdW1lcmljVmFsdWUobnVtZXJpY1ZhbHVlLCB7XG4gICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgY3VycmVuY3lcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1RhYmxlVGV4dFZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cmluZ2lmeVVua25vd24odmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJvd0lkZW50aXR5TGFiZWwocm93SWRlbnRpdHk6IFRhYmxlUm93SWRlbnRpdHkpOiBzdHJpbmcge1xuICBpZiAocm93SWRlbnRpdHkubmFtZSkge1xuICAgIHJldHVybiBzdHJpbmdpZnlVbmtub3duKHJvd0lkZW50aXR5Lm5hbWUpO1xuICB9XG5cbiAgaWYgKHJvd0lkZW50aXR5LnRpdGxlKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVVua25vd24ocm93SWRlbnRpdHkudGl0bGUpO1xuICB9XG5cbiAgaWYgKHJvd0lkZW50aXR5LmxhYmVsKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVVua25vd24ocm93SWRlbnRpdHkubGFiZWwpO1xuICB9XG5cbiAgaWYgKHJvd0lkZW50aXR5LmlkKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVVua25vd24ocm93SWRlbnRpdHkuaWQpO1xuICB9XG5cbiAgcmV0dXJuICdpdGVtJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVSb3dTZWxlY3Rpb25LZXk8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPihyb3c6IFQpOiBzdHJpbmcge1xuICBpZiAoIXJvdyB8fCB0eXBlb2Ygcm93ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBgcHJpbWl0aXZlOiR7U3RyaW5nKHJvdyl9YDtcbiAgfVxuXG4gIGNvbnN0IHJvd0lkZW50aXR5ID0gcm93IGFzIFRhYmxlUm93SWRlbnRpdHk7XG5cbiAgLy8gVHJ5IHN0YW5kYXJkIGlkZW50aXR5IGZpZWxkc1xuICBjb25zdCBpZEtleSA9IHRyeVJlc29sdmVJZEZpZWxkKHJvd0lkZW50aXR5LCAnaWQnKTtcbiAgaWYgKGlkS2V5KSB7XG4gICAgcmV0dXJuIGlkS2V5O1xuICB9XG5cbiAgY29uc3QgbmFtZUtleSA9IHRyeVJlc29sdmVJZEZpZWxkKHJvd0lkZW50aXR5LCAnbmFtZScpO1xuICBpZiAobmFtZUtleSkge1xuICAgIHJldHVybiBuYW1lS2V5O1xuICB9XG5cbiAgY29uc3QgdGl0bGVLZXkgPSB0cnlSZXNvbHZlSWRGaWVsZChyb3dJZGVudGl0eSwgJ3RpdGxlJyk7XG4gIGlmICh0aXRsZUtleSkge1xuICAgIHJldHVybiB0aXRsZUtleTtcbiAgfVxuXG4gIGNvbnN0IGxhYmVsS2V5ID0gdHJ5UmVzb2x2ZUlkRmllbGQocm93SWRlbnRpdHksICdsYWJlbCcpO1xuICBpZiAobGFiZWxLZXkpIHtcbiAgICByZXR1cm4gbGFiZWxLZXk7XG4gIH1cblxuICAvLyBGYWxsYmFjazogc2VyaWFsaXplIG9yIHN0cmluZyByZXByZXNlbnRhdGlvblxuICByZXR1cm4gc2VyaWFsaXplUm93RmFsbGJhY2socm93KTtcbn1cblxuZnVuY3Rpb24gdHJ5UmVzb2x2ZUlkRmllbGQob2JqOiBUYWJsZVJvd0lkZW50aXR5LCBmaWVsZDoga2V5b2YgVGFibGVSb3dJZGVudGl0eSk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IG9ialtmaWVsZF07XG4gIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJykge1xuICAgIHJldHVybiBgJHtmaWVsZH06JHtzdHJpbmdpZnlVbmtub3duKHZhbHVlKX1gO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVSb3dGYWxsYmFjazxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+KHJvdzogVCk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGBqc29uOiR7SlNPTi5zdHJpbmdpZnkocm93KX1gO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gYGZhbGxiYWNrOiR7U3RyaW5nKHJvdyl9YDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSb3dDaGVja2JveElkPFQgZXh0ZW5kcyBSb3dCYXNlID0gUm93QmFzZT4ocm93OiBUKTogc3RyaW5nIHtcbiAgaWYgKCFyb3cgfHwgdHlwZW9mIHJvdyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYGNoZWNrYm94LXJvdy0ke1N0cmluZyhyb3cpfWA7XG4gIH1cblxuICBjb25zdCByb3dJZGVudGl0eSA9IHJvdyBhcyBUYWJsZVJvd0lkZW50aXR5O1xuICBjb25zdCByb3dJZCA9XG4gICAgcm93SWRlbnRpdHkuaWQgPz9cbiAgICByb3dJZGVudGl0eS5uYW1lID8/XG4gICAgSlNPTi5zdHJpbmdpZnkocm93KS5zdWJzdHJpbmcoVEFCTEVfSU5ERVhfWkVSTywgVEFCTEVfREVGQVVMVF9ST1dfSURfUFJFVklFV19MRU5HVEgpO1xuXG4gIHJldHVybiBgY2hlY2tib3gtcm93LSR7c3RyaW5naWZ5VW5rbm93bihyb3dJZCkucmVwbGFjZSgvW15hLXpBLVowLTldL2csICctJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclRhYmxlUm93czxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+KFxuICBkYXRhOiBUW10sXG4gIGNvbHM6IFRhYmxlQ29sdW1uPFQ+W10sXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHJlc29sdmVWYWx1ZTogKHJvdzogVCwgZmllbGQ/OiBzdHJpbmcpID0+IHVua25vd25cbik6IFRbXSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IHF1ZXJ5LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmICghbm9ybWFsaXplZFF1ZXJ5KSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBjb2xzXG4gICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uc2VhcmNoYWJsZSA/PyB0cnVlKVxuICAgIC5maWx0ZXIoKGNvbHVtbik6IGNvbHVtbiBpcyB0eXBlb2YgY29sdW1uICYgeyBmaWVsZDogc3RyaW5nIH0gPT4gISFjb2x1bW4uZmllbGQpXG4gICAgLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uZmllbGQpO1xuXG4gIGlmIChmaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICByZXR1cm4gZGF0YS5maWx0ZXIoKHJvdykgPT5cbiAgICBmaWVsZHMuc29tZSgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZVZhbHVlKHJvdywgZmllbGQpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLmpvaW4oJyAnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5vcm1hbGl6ZWRRdWVyeSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHJpbmdpZnlVbmtub3duKHZhbHVlKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5vcm1hbGl6ZWRRdWVyeSk7XG4gICAgfSlcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -12,9 +12,29 @@ const COLUMN_MIN_WIDTH_MAP = {
|
|
|
12
12
|
strong: TABLE_DEFAULT_STRONG_COLUMN_MIN_WIDTH_PX,
|
|
13
13
|
tag: TABLE_DEFAULT_TAG_COLUMN_MIN_WIDTH_PX,
|
|
14
14
|
};
|
|
15
|
+
const DEFAULT_ALIGNMENT_BY_TYPE = {
|
|
16
|
+
'checkbox-selection': 'center',
|
|
17
|
+
actions: 'center',
|
|
18
|
+
button: 'center',
|
|
19
|
+
currency: 'right',
|
|
20
|
+
date: 'center',
|
|
21
|
+
icon: 'center',
|
|
22
|
+
number: 'right'
|
|
23
|
+
};
|
|
15
24
|
export function normalizeTableColumnAlignment(value) {
|
|
16
25
|
return value === 'left' || value === 'center' || value === 'right' ? value : null;
|
|
17
26
|
}
|
|
27
|
+
export function resolveTableColumnAlignment(column, target = 'cell') {
|
|
28
|
+
const targetAlignment = target === 'header'
|
|
29
|
+
? normalizeTableColumnAlignment(column?.headerAlign)
|
|
30
|
+
: normalizeTableColumnAlignment(column?.cellAlign);
|
|
31
|
+
const sharedAlignment = normalizeTableColumnAlignment(column?.align);
|
|
32
|
+
const typeAlignment = column?.type ? DEFAULT_ALIGNMENT_BY_TYPE[column.type] : undefined;
|
|
33
|
+
return targetAlignment
|
|
34
|
+
?? sharedAlignment
|
|
35
|
+
?? typeAlignment
|
|
36
|
+
?? 'left';
|
|
37
|
+
}
|
|
18
38
|
export function getTableColumnMinWidthPx(column) {
|
|
19
39
|
const width = column.type ? COLUMN_MIN_WIDTH_MAP[column.type] : undefined;
|
|
20
40
|
return width ?? TABLE_DEFAULT_TEXT_COLUMN_MIN_WIDTH_PX;
|
|
@@ -22,4 +42,4 @@ export function getTableColumnMinWidthPx(column) {
|
|
|
22
42
|
export function getTableMinWidthPx(columns) {
|
|
23
43
|
return columns.reduce((total, column) => total + getTableColumnMinWidthPx(column), 0);
|
|
24
44
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RhYmxlL3V0aWxzL3RhYmxlLWxheW91dC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx5Q0FBeUMsRUFDekMsd0NBQXdDLEVBQ3hDLDBDQUEwQyxFQUMxQyxzQ0FBc0MsRUFDdEMsMENBQTBDLEVBQzFDLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFDeEMscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN2QyxNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE1BQU0sb0JBQW9CLEdBQTZDO0lBQ3JFLG9CQUFvQixFQUFFLDBDQUEwQztJQUNoRSxRQUFRLEVBQUUsMENBQTBDO0lBQ3BELE1BQU0sRUFBRSx3Q0FBd0M7SUFDaEQsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxJQUFJLEVBQUUsc0NBQXNDO0lBQzVDLFlBQVksRUFBRSw0Q0FBNEM7SUFDMUQsSUFBSSxFQUFFLHNDQUFzQztJQUM1QyxJQUFJLEVBQUUsc0NBQXNDO0lBQzVDLE1BQU0sRUFBRSx3Q0FBd0M7SUFDaEQsTUFBTSxFQUFFLHdDQUF3QztJQUNoRCxHQUFHLEVBQUUscUNBQXFDO0NBQzNDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUEyRDtJQUN4RixvQkFBb0IsRUFBRSxRQUFRO0lBQzlCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsT0FBTztDQUNoQixDQUFDO0FBRUYsTUFBTSxVQUFVLDZCQUE2QixDQUFDLEtBQWM7SUFDMUQsT0FBTyxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDcEYsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsTUFBeUMsRUFDekMsU0FBNEIsTUFBTTtJQUVsQyxNQUFNLGVBQWUsR0FBRyxNQUFNLEtBQUssUUFBUTtRQUN6QyxDQUFDLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUNwRCxDQUFDLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZUFBZSxHQUFHLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRSxNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUV4RixPQUFPLGVBQWU7V0FDakIsZUFBZTtXQUNmLGFBQWE7V0FDYixNQUFNLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUE4QixNQUFzQjtJQUMxRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxPQUFPLEtBQUssSUFBSSxzQ0FBc0MsQ0FBQztBQUN6RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUE4QixPQUF5QjtJQUN2RixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRBQkxFX0RFRkFVTFRfQUNUSU9OU19DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBUQUJMRV9ERUZBVUxUX0JVVFRPTl9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBUQUJMRV9ERUZBVUxUX0NIRUNLQk9YX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfQ09ERV9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBUQUJMRV9ERUZBVUxUX0NVUlJFTkNZX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfREFURV9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBUQUJMRV9ERUZBVUxUX0lDT05fQ09MVU1OX01JTl9XSURUSF9QWCxcbiAgVEFCTEVfREVGQVVMVF9JQ09OX1RJVExFX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfTlVNQkVSX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfU1RST05HX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfVEFHX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIFRBQkxFX0RFRkFVTFRfVEVYVF9DT0xVTU5fTUlOX1dJRFRIX1BYXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvY29uc3RhbnRzL3RhYmxlLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUm93QmFzZSwgVGFibGVDb2x1bW4sIFRhYmxlQ29sdW1uQWxpZ25tZW50LCBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3RhYmxlLnR5cGUnO1xuXG5jb25zdCBDT0xVTU5fTUlOX1dJRFRIX01BUDogUGFydGlhbDxSZWNvcmQ8VGFibGVDb2x1bW5UeXBlLCBudW1iZXI+PiA9IHtcbiAgJ2NoZWNrYm94LXNlbGVjdGlvbic6IFRBQkxFX0RFRkFVTFRfQ0hFQ0tCT1hfQ09MVU1OX01JTl9XSURUSF9QWCxcbiAgY3VycmVuY3k6IFRBQkxFX0RFRkFVTFRfQ1VSUkVOQ1lfQ09MVU1OX01JTl9XSURUSF9QWCxcbiAgYnV0dG9uOiBUQUJMRV9ERUZBVUxUX0JVVFRPTl9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBhY3Rpb25zOiBUQUJMRV9ERUZBVUxUX0FDVElPTlNfQ09MVU1OX01JTl9XSURUSF9QWCxcbiAgaWNvbjogVEFCTEVfREVGQVVMVF9JQ09OX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gICdpY29uLXRpdGxlJzogVEFCTEVfREVGQVVMVF9JQ09OX1RJVExFX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIGRhdGU6IFRBQkxFX0RFRkFVTFRfREFURV9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBjb2RlOiBUQUJMRV9ERUZBVUxUX0NPREVfQ09MVU1OX01JTl9XSURUSF9QWCxcbiAgbnVtYmVyOiBUQUJMRV9ERUZBVUxUX05VTUJFUl9DT0xVTU5fTUlOX1dJRFRIX1BYLFxuICBzdHJvbmc6IFRBQkxFX0RFRkFVTFRfU1RST05HX0NPTFVNTl9NSU5fV0lEVEhfUFgsXG4gIHRhZzogVEFCTEVfREVGQVVMVF9UQUdfQ09MVU1OX01JTl9XSURUSF9QWCxcbn07XG5cbmNvbnN0IERFRkFVTFRfQUxJR05NRU5UX0JZX1RZUEU6IFBhcnRpYWw8UmVjb3JkPFRhYmxlQ29sdW1uVHlwZSwgVGFibGVDb2x1bW5BbGlnbm1lbnQ+PiA9IHtcbiAgJ2NoZWNrYm94LXNlbGVjdGlvbic6ICdjZW50ZXInLFxuICBhY3Rpb25zOiAnY2VudGVyJyxcbiAgYnV0dG9uOiAnY2VudGVyJyxcbiAgY3VycmVuY3k6ICdyaWdodCcsXG4gIGRhdGU6ICdjZW50ZXInLFxuICBpY29uOiAnY2VudGVyJyxcbiAgbnVtYmVyOiAncmlnaHQnXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQodmFsdWU6IHVua25vd24pOiBUYWJsZUNvbHVtbkFsaWdubWVudCB8IG51bGwge1xuICByZXR1cm4gdmFsdWUgPT09ICdsZWZ0JyB8fCB2YWx1ZSA9PT0gJ2NlbnRlcicgfHwgdmFsdWUgPT09ICdyaWdodCcgPyB2YWx1ZSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVGFibGVDb2x1bW5BbGlnbm1lbnQ8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPihcbiAgY29sdW1uOiBUYWJsZUNvbHVtbjxUPiB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHRhcmdldDogJ2NlbGwnIHwgJ2hlYWRlcicgPSAnY2VsbCdcbik6IFRhYmxlQ29sdW1uQWxpZ25tZW50IHtcbiAgY29uc3QgdGFyZ2V0QWxpZ25tZW50ID0gdGFyZ2V0ID09PSAnaGVhZGVyJ1xuICAgID8gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQoY29sdW1uPy5oZWFkZXJBbGlnbilcbiAgICA6IG5vcm1hbGl6ZVRhYmxlQ29sdW1uQWxpZ25tZW50KGNvbHVtbj8uY2VsbEFsaWduKTtcbiAgY29uc3Qgc2hhcmVkQWxpZ25tZW50ID0gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQoY29sdW1uPy5hbGlnbik7XG4gIGNvbnN0IHR5cGVBbGlnbm1lbnQgPSBjb2x1bW4/LnR5cGUgPyBERUZBVUxUX0FMSUdOTUVOVF9CWV9UWVBFW2NvbHVtbi50eXBlXSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gdGFyZ2V0QWxpZ25tZW50XG4gICAgPz8gc2hhcmVkQWxpZ25tZW50XG4gICAgPz8gdHlwZUFsaWdubWVudFxuICAgID8/ICdsZWZ0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhYmxlQ29sdW1uTWluV2lkdGhQeDxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+KGNvbHVtbjogVGFibGVDb2x1bW48VD4pOiBudW1iZXIge1xuICBjb25zdCB3aWR0aCA9IGNvbHVtbi50eXBlID8gQ09MVU1OX01JTl9XSURUSF9NQVBbY29sdW1uLnR5cGVdIDogdW5kZWZpbmVkO1xuICByZXR1cm4gd2lkdGggPz8gVEFCTEVfREVGQVVMVF9URVhUX0NPTFVNTl9NSU5fV0lEVEhfUFg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU1pbldpZHRoUHg8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPihjb2x1bW5zOiBUYWJsZUNvbHVtbjxUPltdKTogbnVtYmVyIHtcbiAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKCh0b3RhbCwgY29sdW1uKSA9PiB0b3RhbCArIGdldFRhYmxlQ29sdW1uTWluV2lkdGhQeChjb2x1bW4pLCAwKTtcbn1cbiJdfQ==
|