@qrvey/widget-configurability 0.0.0-beta.4589 → 0.0.0-beta.4657

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 (40) hide show
  1. package/README.md +53 -0
  2. package/dist/cjs/index.js +12 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/metadata/customization-metadata.js +241 -0
  5. package/dist/cjs/metadata/customization-metadata.js.map +1 -0
  6. package/dist/cjs/metadata/index.js +11 -0
  7. package/dist/cjs/metadata/index.js.map +1 -0
  8. package/dist/cjs/metadata/labels/chart-panel.labels.js +56 -0
  9. package/dist/cjs/metadata/labels/chart-panel.labels.js.map +1 -0
  10. package/dist/cjs/metadata/labels/dashboard.labels.js +207 -0
  11. package/dist/cjs/metadata/labels/dashboard.labels.js.map +1 -0
  12. package/dist/cjs/metadata/metadata.models.js +3 -0
  13. package/dist/cjs/metadata/metadata.models.js.map +1 -0
  14. package/dist/cjs/models/remote.models.js +3 -0
  15. package/dist/cjs/models/remote.models.js.map +1 -0
  16. package/dist/cjs/models/validation.models.js +3 -0
  17. package/dist/cjs/models/validation.models.js.map +1 -0
  18. package/dist/cjs/remote/remote-customization.loader.js +213 -0
  19. package/dist/cjs/remote/remote-customization.loader.js.map +1 -0
  20. package/dist/cjs/structural-manager.js +35 -2
  21. package/dist/cjs/structural-manager.js.map +1 -1
  22. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  23. package/dist/cjs/utils/defaults.helpers.js +3 -0
  24. package/dist/cjs/utils/defaults.helpers.js.map +1 -1
  25. package/dist/cjs/utils/layers.helpers.js +178 -0
  26. package/dist/cjs/utils/layers.helpers.js.map +1 -0
  27. package/dist/cjs/utils/logger.helpers.js +10 -0
  28. package/dist/cjs/utils/logger.helpers.js.map +1 -0
  29. package/dist/cjs/utils/scope.helpers.js +4 -1
  30. package/dist/cjs/utils/scope.helpers.js.map +1 -1
  31. package/dist/cjs/validation/customization.validator.js +366 -0
  32. package/dist/cjs/validation/customization.validator.js.map +1 -0
  33. package/dist/esm/index.mjs +846 -28
  34. package/dist/esm/index.mjs.map +1 -1
  35. package/dist/esm/metadata.mjs +2750 -0
  36. package/dist/esm/metadata.mjs.map +1 -0
  37. package/dist/types/customization.models-CCSWjfb2.d.ts +47 -0
  38. package/dist/types/index.d.ts +98 -47
  39. package/dist/types/metadata.d.ts +59 -0
  40. package/package.json +7 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/metadata/labels/chart-panel.labels.ts","../../src/metadata/labels/dashboard.labels.ts","../../src/constants/structure.constants.ts","../../src/utils/defaults.helpers.ts","../../src/structures/download-modal.structure.v1.ts","../../src/structures/dashboard.structure.v1.ts","../../src/structures/download-manager.structure.v1.ts","../../src/structures/report.structure.v1.ts","../../src/structures/chart-panel.structure.v1.ts","../../src/structures/chart-gallery.structure.v1.ts","../../src/structures/chart-builder.structure.v1.ts","../../src/constants/configs.ts","../../src/models/conditions.models.ts","../../src/utils/conditions.helpers.ts","../../src/utils/merge.helpers.ts","../../src/utils/layers.helpers.ts","../../src/utils/logger.helpers.ts","../../src/utils/structural.helpers.ts","../../src/structural-manager.ts","../../src/utils/scope.helpers.ts","../../src/metadata/customization-metadata.ts"],"names":["CHART_PANEL_LABELS","header","label","floatingMenu","menuLayout","body","optionMenu","optionDateGrouping","dashFilterScope","tabFilterScope","panelFilterScope","qChartName","qFitPanel","qChartSelection","qColumnSection","qSorting","qColumnReplacement","qColumnAggregation","qColumnGrouping","qDateGrouping","qColumnSelection","qResetColumnsWidth","qSmartAnalyzer","qEditChart","qDuplicateChart","qDownloadChart","qChartJPG","qChartPDF","qChartCSV","qChartSummary","qChartExcel","qFilter","qAddFilter","qEditFilter","qDeleteFilter","qYear","qQuarter","qQuarterOnly","qMonth","qMonthOnly","qWeek","qDay","qDayOnly","qHour","qHourOnly","qMinute","qMinuteOnly","qSecond","qSecondOnly","qComparativeAnalysis","DASHBOARD_LABELS","navBar","assetList","controlBarLeft","controlBarRight","menuBar","toolBar","configPanel","filterPanel","downloadModal","canvas","duplicateModal","grid","containerFilterScope","viewOnlyFilterScope","edit","file","insert","options","timezone","qAppTitle","qBackButton","qQvTokenExpiredMessage","qGoToDashBackButton","qCreateDash","qSwitchView","qFilterBy","qSortBy","qSearch","qSelectColumn","qStatus","qPreview","qPublish","qUnpublish","qDesign","qEditDash","qUseDash","qRenameDash","qDeleteDash","qManageTags","qTags","qFilterByTags","qDuplDash","qDuplDashAndCharts","qManageSharing","qFavorite","qCreatedDate","qLastModifDate","qNumberOfCharts","qSharing","qSharingIcon","qOwner","qDescription","qDashFavorite","qDashName","qDashDesc","qMnuCreateDash","qMnuOpenDash","qMnuDuplicateDash","qMnuDuplicateDashAndCharts","qMnuCanvasSize","qMnuThemes","qMnuDeleteDash","qMnuDownloadDash","qCreateDataset","qCreateCustomDataset","qViewCustomDataset","qUndoRedo","qCopyElement","qPasteElement","qCutElement","qRemoveElement","qDuplElement","qSelectAllElem","qSelectAllContElem","qMnuInsertChart","qMnuExistingChart","qMnuNewChart","qMnuNewChartAI","qMnuInsertFilterCtrl","qMnuDatePicker","qMnuInputBox","qMnuMultiSelectList","qMnuSingleSelectList","qMnuInsertShape","qMnuLine","qMnuRectangle","qMnuEllipse","qMnuInsertText","qMnuInsertImage","qMnuInsertButton","qMnuInsertContainer","qMnuInsertHeader","qMnuInsertTabs","qMnuArrange","qMnuBringToFront","qMnuSendToBack","qMnuAlign","qMnuDisplayGrid","qMnuSnapToGrid","qMnuSwitchGrid","qCanvasSize","qInsertChart","qExistingChart","qNewChart","qNewChartAI","qInsertFilterCtrl","qDatePicker","qInputBox","qMultiSelectList","qSingleSelectList","qInsertShape","qLine","qRectangle","qEllipse","qSnapToGrid","qDisplayGrid","qSwitchGrid","qDownloadDash","qDashPDF","qDashCSV","qDashExcel","qDashDataset","qArrange","qBringToFront","qSendToBack","qResponsiveView","qDesktop","qTablet","qMobile","qBreakpoints","qAlign","qAlignRight","qAlignLeft","qAlignCenter","qAlignTop","qAlignMiddle","qAlignBottom","qInsertText","qInsertImage","qInsertButton","qInsertContainer","qRespGridMargins","qRespGridColumns","qThemes","qDashVersion","qGetDashVersion","qSourceDashBanner","qHiddenItems","qDiscard","qSave","qSwitchMode","qHideToolBar","qDownloadList","qChangeLayout","qEnabDisabAllFilters","qDeleteAllFilters","qFilterSettings","qEnabDisabFilter","qScheduleOption","qSubscribeOption","qSubscribeExternalUsers","qSubscribeBanner","qOwnerLabel","qSubscribeOrganization","qSubscribeMyself","qSubscribeSpecificPeople","qSubscribeOwner","qIncludeHeader","qIncludeHyperlinks","qExportVersion","qSavedVersionWarning","qUnsavedVersionWarning","qCharts","qFilters","qDashActions","STRUCTURE_SECTION_NAME_SEPARATOR","STRUCTURE_VIEW_NAME_SEPARATOR","STRUCTURE_RESERVED_WORDS","Widget","WIDGET_SUBMODULE_NAMES","WIDGET_STRUCTURE_SCOPE_KIND","WIDGET_STRUCTURE_SCOPE_FORMAT","WidgetVersion","FONT_SIZES","applyValidation","currentObj","validatorMap","parentKey","sanitize","validatedObj","Object","keys","forEach","key","fullKey","value","Array","isArray","validateDefaults","obj","isANumber","_value","Number","isNaN","undefined","numberMinMaxValue","maxValue","minValue","fontSizeMinMaxValue","minSize","maxSize","inputSize","parseInt","includes","validFontSizes","filter","size","length","closestSize","smallestDiff","Math","abs","diff","fontColorValue","normalizedColor","toLowerCase","validateBoolean","validateUnsavedChangesBehavior","validateType","validValues","receivedValue","toUpperCase","DX_VALIDATOR_MAP","unsavedChangesBehavior","DOWNLOAD_MODAL_VALIDATOR_MAP","subscribeMyself","DOWNLOAD_MODAL_V1_KEYS","DOWNLOAD_MODAL_V1_KEEP_INHERITANCE","hostKeepInheritance","section","fromEntries","entries","map","alias","DOWNLOAD_MODAL_V1_DEFAULTS","downloadModalV1Config","version","keepInheritance","baseStructure","defaults","DOWNLOAD_MODAL_HOST_KEYS","dashboardV1Config","views","list","design","preview","endUser","endUserTopBar","assetListViewMode","asset","card","table","removeElement","dragElement","resizeElement","qOptionsMenu","subModules","chartPanel","chartGallery","chartBuilder","downloadManagerV1Config","main","detail","controlBar","filters","qFilterByFileType","qFilterByExecution","qFilterByWidget","qFilterByAsset","qFilterByOrganization","qFilterByOwner","qRemoveFilters","qScheduleDetail","qFilesExported","qMoreInfo","bottomBar","moreInfoModal","reportV1Config","tabBar","qDownloadReport","dataPanel","tabDataset","tabParameters","repoFilterScope","optionMenuChildren","headerConfig","floatingMenuConfig","item","chartPanelV1Config","chartGalleryV1Config","chartTypeFilter","showSummary","inputSearch","switch","title","chartBuilderV1Config","widgetConfigs","DASHBOARD","v1","latest","REPORT","DOWNLOAD_MANAGER","DOWNLOAD_MODAL","CHART_PANEL","CHART_GALLERY","CHART_BUILDER","widgetValidators","allowedOperators","isOperator","getValue","condition","state","field","_evalConditionOperator","operator","OPERATOR_MAP","a","b","startsWith","endsWith","contains","evaluateCondition","conditions","every","c","_evalCondition","evalFn","checkConditions","cond","effect","result","mergeDeep","obj1","obj2","settings","defaultSettings","mergeExistingValues","mergeMissingProperties","isValid","objectCopy","val1","val2","isObject","prototype","hasOwnProperty","call","toString","SUBMODULES_KEY","isPlainObject","stringList","normalizeCondition","conditionValue","normalizeSubmodules","name","submodule","normalizeLayer","allowViews","layer","remove","keep","conditional","flatMap","rest","view","viewLayer","mergeDefaults","previous","next","mergeLayerDefaults","layers","last","viewNames","Set","_a","rootDefaults","reduce","merged","viewDefaults","effective","isSubmodulesKey","asItemObject","intersectItem","current","other","otherItem","childMap","intersectViewMaps","hasDefaults","hasChildMap","collectSubmoduleLayers","maps","collection","LOG_PREFIX","logWarning","message","console","warn","getWidgetStructure","config","customization","validationMap","calculateViewMap","permissionMap","keepAliases","assign","calculateSpecificViewMap","customDefaults","calculateCustomDefaults","prevDefaults","submodules","calculateSubmodules","conditionMaps","calculateConditions","calculatePermissionMap","calculateRootDefaults","calculateDefaults","viewDefinition","viewConditionals","viewKeys","viewPrefix","getViewPrefix","getStructureKey","viewValue","matchWildcard","pattern","regexPattern","RegExp","replace","test","keyIsIncludedInKeep","keyIsIncludedInRemove","canInsertInCustomization","validateKeepOption","includedInRemove","includedInKeep","canInsert","keepValue","keepResult","conditionAffect","evalInsertKey","hasKeepOption","customizationView","custCanInsert","custViewCanInsert","some","x","canInsertKey","checkCondition","addKeyToPermissions","keyAttr","addDefaultKey","addChildMapKey","getConditionsForKey","pathPrefix","previousKeepOption","currentKeepOption","nodeHasKeepOption","configValue","currentKey","newPrefix","canInsertResult","calculatePermissionMapArray","mapValue","push","rootConditionals","customConditionals","viewSubmodules","customRootSubmodules","customSubmodules","mergeObjects","customRootDefaults","defaultObj","structureDefaults","itemDefaults","baseDefaults","prevObj","newObj","mapObjKeys","mapArrayKeys","nodeKeys","defaultsSimple","option","fullPath","getWidgetConfig","widget","versionSet","widgetConfigurability","Error","buildStructure","buildLayeredStructure","error","structureMap","WidgetStructureInstance","inline","engineOptions","layerMaps","layerMap","constructor","viewMap","submoduleLayers","isVisible","getChildMap","getSubmodule","module","getSubmoduleLayers","getDefaults","getRootDefaults","scope","prefixKey","present","sectionPath","split","pop","namespace","defaultsNamespace","sectionDefaults","childPrefix","structureVersion","slice","JSON","parse","stringify","kind","format","source","structureFromSubmodule","parent","find","widgetMetadata","labels","widgetOfSubmodule","resolveTarget","target","embedded","structureKeysOf","prefix","humanize","id","char","getCustomizationLabel","getCustomizationTree","resolved","ordered","roots","nodes","Map","ensure","existing","get","parts","description","node","set","join","children","instanceFor","instance","matches","scopesOf","own","root","lockOf","hiddenParent","verb","rootRemove","viewRemove","getCustomizationTreeState","tree","instances","walk","hiddenParents","states","visible","Boolean","locks","index","lockedBy","childParents","stateNode","isEmptyObject","toggleCustomizationKey","chain","step","holder","block","property"],"mappings":"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","file":"metadata.mjs","sourcesContent":["import { CustomizationLabelMap } from '../metadata.models';\n\n// Initial English labels of the chart panel (chartPanel submodule), for review with Product (D20).\nexport const CHART_PANEL_LABELS: CustomizationLabelMap = {\n header: { label: 'Chart header' },\n floatingMenu: { label: 'Floating menu' },\n menuLayout: { label: 'Menu layout' },\n body: { label: 'Chart body' },\n 'body.actions': { label: 'Chart actions' },\n optionMenu: { label: 'Chart options menu' },\n optionDateGrouping: { label: 'Date grouping options' },\n dashFilterScope: { label: 'Dashboard filters' },\n tabFilterScope: { label: 'Tab filters' },\n panelFilterScope: { label: 'Panel filters' },\n qChartName: { label: 'Chart name' },\n qFitPanel: { label: 'Fit to panel' },\n qChartSelection: { label: 'Chart type selection' },\n qColumnSection: { label: 'Column section' },\n qSorting: { label: 'Sorting' },\n qColumnReplacement: { label: 'Column replacement' },\n qColumnAggregation: { label: 'Column aggregation' },\n qColumnGrouping: { label: 'Column grouping' },\n qDateGrouping: { label: 'Date grouping' },\n qColumnSelection: { label: 'Column selection' },\n qResetColumnsWidth: { label: 'Reset column widths' },\n qSmartAnalyzer: { label: 'Smart analyzer' },\n qEditChart: { label: 'Edit chart' },\n qDuplicateChart: { label: 'Duplicate chart' },\n qDownloadChart: { label: 'Download' },\n qChartJPG: { label: 'JPG' },\n qChartPDF: { label: 'PDF' },\n qChartCSV: { label: 'CSV' },\n qChartSummary: { label: 'Summary' },\n qChartExcel: { label: 'Excel' },\n qFilter: { label: 'Filters' },\n qAddFilter: { label: 'Add filter' },\n qEditFilter: { label: 'Edit filter' },\n qDeleteFilter: { label: 'Delete filter' },\n qYear: { label: 'Year' },\n qQuarter: { label: 'Quarter' },\n qQuarterOnly: { label: 'Quarter only' },\n qMonth: { label: 'Month' },\n qMonthOnly: { label: 'Month only' },\n qWeek: { label: 'Week' },\n qDay: { label: 'Day' },\n qDayOnly: { label: 'Day only' },\n qHour: { label: 'Hour' },\n qHourOnly: { label: 'Hour only' },\n qMinute: { label: 'Minute' },\n qMinuteOnly: { label: 'Minute only' },\n qSecond: { label: 'Second' },\n qSecondOnly: { label: 'Second only' },\n qComparativeAnalysis: { label: 'Comparative analysis' },\n};\n","import { CustomizationLabelMap } from '../metadata.models';\n\n// Initial English labels for the Admin Center builder, written by dev for review with Product (D20).\n// Looked up by full key path first, then by leaf id, so a key repeated in card and table shares one label.\nexport const DASHBOARD_LABELS: CustomizationLabelMap = {\n // Sections\n navBar: { label: 'Navigation bar' },\n assetList: { label: 'Dashboard list' },\n 'assetList.asset': { label: 'Dashboard item' },\n 'assetList.asset.optionMenu': { label: 'Dashboard options menu' },\n 'assetList.asset.card': { label: 'Card view' },\n 'assetList.asset.table': { label: 'Table view' },\n controlBarLeft: { label: 'Left control bar' },\n controlBarRight: { label: 'Right control bar' },\n header: { label: 'Dashboard header' },\n 'header.qOptionsMenu': { label: 'Dashboard options menu' },\n menuBar: { label: 'Menu bar' },\n 'menuBar.file': { label: 'File menu' },\n 'menuBar.edit': { label: 'Edit menu' },\n 'menuBar.insert': { label: 'Insert menu' },\n toolBar: { label: 'Toolbar' },\n configPanel: { label: 'Configuration panel' },\n filterPanel: { label: 'Filter panel' },\n downloadModal: { label: 'Download modal' },\n canvas: { label: 'Canvas' },\n duplicateModal: { label: 'Duplicate modal' },\n 'duplicateModal.options': { label: 'Duplicate options' },\n grid: { label: 'Grid' },\n dashFilterScope: { label: 'Dashboard filters' },\n tabFilterScope: { label: 'Tab filters' },\n containerFilterScope: { label: 'Container filters' },\n panelFilterScope: { label: 'Panel filters' },\n viewOnlyFilterScope: { label: 'View-only filters' },\n edit: { label: 'Edit menu' },\n file: { label: 'File menu' },\n insert: { label: 'Insert menu' },\n options: { label: 'Options' },\n timezone: { label: 'Timezone' },\n\n // Navigation and list\n qAppTitle: { label: 'Application title' },\n qBackButton: { label: 'Back button' },\n qQvTokenExpiredMessage: { label: 'Session expired message' },\n qGoToDashBackButton: { label: 'Back to source dashboard button' },\n qCreateDash: { label: 'Create dashboard' },\n qSwitchView: { label: 'Card/table switch' },\n qFilterBy: { label: 'Filter by' },\n qSortBy: { label: 'Sort by' },\n qSearch: { label: 'Search' },\n qSelectColumn: { label: 'Column selection' },\n qStatus: { label: 'Status' },\n qPreview: { label: 'Preview' },\n qPublish: { label: 'Publish' },\n qUnpublish: { label: 'Unpublish' },\n qDesign: { label: 'Design' },\n qEditDash: { label: 'Edit dashboard' },\n qUseDash: { label: 'Use dashboard' },\n qRenameDash: { label: 'Rename dashboard' },\n qDeleteDash: { label: 'Delete dashboard' },\n qManageTags: { label: 'Manage tags' },\n qTags: { label: 'Tags' },\n qFilterByTags: { label: 'Filter by tags' },\n qDuplDash: { label: 'Duplicate dashboard' },\n qDuplDashAndCharts: { label: 'Duplicate dashboard and charts' },\n qManageSharing: { label: 'Manage sharing' },\n qFavorite: { label: 'Favorite' },\n qCreatedDate: { label: 'Created date' },\n qLastModifDate: { label: 'Last modified date' },\n qNumberOfCharts: { label: 'Number of charts' },\n qSharing: { label: 'Sharing' },\n qSharingIcon: { label: 'Sharing icon' },\n qOwner: { label: 'Owner' },\n qDescription: { label: 'Description' },\n\n // Header\n qDashFavorite: { label: 'Favorite' },\n qDashName: { label: 'Dashboard name' },\n qDashDesc: { label: 'Dashboard description' },\n\n // Menu bar\n qMnuCreateDash: { label: 'New dashboard' },\n qMnuOpenDash: { label: 'Open dashboard' },\n qMnuDuplicateDash: { label: 'Duplicate dashboard' },\n qMnuDuplicateDashAndCharts: { label: 'Duplicate dashboard and charts' },\n qMnuCanvasSize: { label: 'Canvas size' },\n qMnuThemes: { label: 'Themes' },\n qMnuDeleteDash: { label: 'Delete dashboard' },\n qMnuDownloadDash: { label: 'Download' },\n qCreateDataset: { label: 'Custom dataset' },\n qCreateCustomDataset: { label: 'Create custom dataset' },\n qViewCustomDataset: { label: 'View custom dataset' },\n qUndoRedo: { label: 'Undo / redo' },\n qCopyElement: { label: 'Copy' },\n qPasteElement: { label: 'Paste' },\n qCutElement: { label: 'Cut' },\n qRemoveElement: { label: 'Remove' },\n qDuplElement: { label: 'Duplicate' },\n qSelectAllElem: { label: 'Select all' },\n qSelectAllContElem: { label: 'Select all in container' },\n qMnuInsertChart: { label: 'Chart' },\n qMnuExistingChart: { label: 'Existing chart' },\n qMnuNewChart: { label: 'New chart' },\n qMnuNewChartAI: { label: 'New chart with AI' },\n qMnuInsertFilterCtrl: { label: 'Filter control' },\n qMnuDatePicker: { label: 'Date picker' },\n qMnuInputBox: { label: 'Input box' },\n qMnuMultiSelectList: { label: 'Multi-select list' },\n qMnuSingleSelectList: { label: 'Single-select list' },\n qMnuInsertShape: { label: 'Shape' },\n qMnuLine: { label: 'Line' },\n qMnuRectangle: { label: 'Rectangle' },\n qMnuEllipse: { label: 'Ellipse' },\n qMnuInsertText: { label: 'Text' },\n qMnuInsertImage: { label: 'Image' },\n qMnuInsertButton: { label: 'Button' },\n qMnuInsertContainer: { label: 'Container' },\n qMnuInsertHeader: { label: 'Header' },\n qMnuInsertTabs: { label: 'Tabs' },\n qMnuArrange: { label: 'Arrange' },\n qMnuBringToFront: { label: 'Bring to front' },\n qMnuSendToBack: { label: 'Send to back' },\n qMnuAlign: { label: 'Align' },\n qMnuDisplayGrid: { label: 'Display grid' },\n qMnuSnapToGrid: { label: 'Snap to grid' },\n qMnuSwitchGrid: { label: 'Switch grid' },\n\n // Toolbar\n qCanvasSize: { label: 'Canvas size' },\n qInsertChart: { label: 'Insert chart' },\n qExistingChart: { label: 'Existing chart' },\n qNewChart: { label: 'New chart' },\n qNewChartAI: { label: 'New chart with AI' },\n qInsertFilterCtrl: { label: 'Insert filter control' },\n qDatePicker: { label: 'Date picker' },\n qInputBox: { label: 'Input box' },\n qMultiSelectList: { label: 'Multi-select list' },\n qSingleSelectList: { label: 'Single-select list' },\n qInsertShape: { label: 'Insert shape' },\n qLine: { label: 'Line' },\n qRectangle: { label: 'Rectangle' },\n qEllipse: { label: 'Ellipse' },\n qSnapToGrid: { label: 'Snap to grid' },\n qDisplayGrid: { label: 'Display grid' },\n qSwitchGrid: { label: 'Switch grid' },\n qDownloadDash: { label: 'Download' },\n qDashPDF: { label: 'PDF' },\n qDashCSV: { label: 'CSV' },\n qDashExcel: { label: 'Excel' },\n qDashDataset: { label: 'Dataset' },\n qArrange: { label: 'Arrange' },\n qBringToFront: { label: 'Bring to front' },\n qSendToBack: { label: 'Send to back' },\n qResponsiveView: { label: 'Responsive view' },\n qDesktop: { label: 'Desktop' },\n qTablet: { label: 'Tablet' },\n qMobile: { label: 'Mobile' },\n qBreakpoints: { label: 'Breakpoints' },\n qAlign: { label: 'Align' },\n qAlignRight: { label: 'Align right' },\n qAlignLeft: { label: 'Align left' },\n qAlignCenter: { label: 'Align center' },\n qAlignTop: { label: 'Align top' },\n qAlignMiddle: { label: 'Align middle' },\n qAlignBottom: { label: 'Align bottom' },\n qInsertText: { label: 'Insert text' },\n qInsertImage: { label: 'Insert image' },\n qInsertButton: { label: 'Insert button' },\n qInsertContainer: { label: 'Insert container' },\n qRespGridMargins: { label: 'Responsive grid margins' },\n qRespGridColumns: { label: 'Responsive grid columns' },\n qThemes: { label: 'Themes' },\n qDashVersion: { label: 'Dashboard version' },\n qGetDashVersion: { label: 'Change version' },\n qSourceDashBanner: { label: 'Personalization banner' },\n qHiddenItems: { label: 'Hidden items' },\n qDiscard: { label: 'Discard changes' },\n qSave: { label: 'Save changes' },\n qSwitchMode: { label: 'Interact / design switch' },\n qHideToolBar: { label: 'Hide toolbar' },\n qDownloadList: { label: 'Download list' },\n qChangeLayout: { label: 'Change layout' },\n\n // Filter panel\n qAddFilter: { label: 'Add filter' },\n qEnabDisabAllFilters: { label: 'Enable / disable all filters' },\n qDeleteAllFilters: { label: 'Delete all filters' },\n qFilterSettings: { label: 'Filter settings' },\n qEditFilter: { label: 'Edit filter' },\n qEnabDisabFilter: { label: 'Enable / disable filter' },\n qDeleteFilter: { label: 'Delete filter' },\n\n // Download modal\n qScheduleOption: { label: 'Schedule' },\n qSubscribeOption: { label: 'Subscribe' },\n qSubscribeExternalUsers: { label: 'Subscribe external users' },\n qSubscribeBanner: { label: 'Subscription banner' },\n qOwnerLabel: { label: 'Owner' },\n qSubscribeOrganization: { label: 'Subscribe organization' },\n qSubscribeMyself: { label: 'Subscribe myself' },\n qSubscribeSpecificPeople: { label: 'Subscribe specific people' },\n qSubscribeOwner: { label: 'Subscribe owner' },\n qIncludeHeader: { label: 'Include header' },\n qIncludeHyperlinks: { label: 'Include hyperlinks' },\n qExportVersion: { label: 'Export version' },\n qSavedVersionWarning: { label: 'Saved version banner' },\n qUnsavedVersionWarning: { label: 'Unsaved version banner' },\n\n // Duplicate modal\n qCharts: { label: 'Charts' },\n qFilters: { label: 'Filters' },\n qDashActions: { label: 'Dashboard actions' },\n};\n","export const STRUCTURE_SECTION_NAME_SEPARATOR = '.';\nexport const STRUCTURE_VIEW_NAME_SEPARATOR = '::';\nexport const STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];\n\nexport enum Widget {\n DASHBOARD = 'dashboard',\n REPORT = 'report',\n DOWNLOAD_MANAGER = 'download-manager',\n DOWNLOAD_MODAL = 'download-modal',\n CHART_PANEL = 'chart-panel',\n CHART_GALLERY = 'chart-gallery',\n CHART_BUILDER = 'chart-builder',\n}\n\n// The subModules key a host uses for each widget it embeds.\nexport const WIDGET_SUBMODULE_NAMES: Partial<Record<Widget, string>> = {\n [Widget.DOWNLOAD_MODAL]: 'downloadModal',\n [Widget.CHART_PANEL]: 'chartPanel',\n [Widget.CHART_GALLERY]: 'chartGallery',\n [Widget.CHART_BUILDER]: 'chartBuilder',\n};\n\nexport const WIDGET_STRUCTURE_SCOPE_KIND = 'qrvey.widget-structure-scope';\nexport const WIDGET_STRUCTURE_SCOPE_FORMAT = 1;\n\nexport enum WidgetVersion {\n v1 = '1.0',\n latest = 'latest',\n}\n","import { SanitizeFn, ValidationMap } from '../models/structure.models';\n\nexport type { ValidationMap } from '../models/structure.models';\n\nconst FONT_SIZES: number[] = [\n 8, 9, 10, 11, 12, 14, 15, 16, 18, 24, 30, 36, 48, 60, 72, 96,\n];\n\nfunction applyValidation(\n currentObj: Record<string, unknown>,\n validatorMap: ValidationMap,\n parentKey = '',\n sanitize?: SanitizeFn,\n): Record<string, unknown> {\n const validatedObj: Record<string, unknown> = {};\n\n Object.keys(currentObj).forEach((key) => {\n const fullKey = parentKey ? `${parentKey}.${key}` : key;\n const value = currentObj[key];\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n validatedObj[key] = applyValidation(\n value as Record<string, unknown>,\n validatorMap,\n fullKey,\n sanitize,\n );\n } else if (validatorMap[fullKey]) {\n validatedObj[key] = validatorMap[fullKey](value);\n } else {\n validatedObj[key] =\n sanitize && typeof value === 'string' ? sanitize(value) : value;\n }\n });\n\n return validatedObj;\n}\n\nexport function validateDefaults(\n obj: Record<string, unknown>,\n validatorMap: ValidationMap,\n sanitize?: SanitizeFn,\n) {\n return applyValidation(obj, validatorMap, '', sanitize);\n}\n\nconst isANumber = (value: string | number) => {\n const _value = Number(value);\n if (!_value || isNaN(_value)) return undefined;\n return _value;\n};\n\nconst numberMinMaxValue =\n (maxValue: number, minValue?: number) => (value: string) => {\n const _value = isANumber(value);\n if (!_value) return undefined;\n if (minValue && _value < minValue) return minValue;\n if (_value > maxValue) return maxValue;\n return _value;\n };\n\nexport const fontSizeMinMaxValue =\n (minSize: number, maxSize: number) =>\n (value: string): string | undefined => {\n const inputSize = parseInt(value, 10);\n // Check if the inputSize is valid and within range\n if (\n FONT_SIZES.includes(inputSize) &&\n inputSize >= minSize &&\n inputSize <= maxSize\n ) {\n return `${inputSize}px`;\n }\n\n // Filter FONT_SIZES by min and max\n const validFontSizes = FONT_SIZES.filter(\n (size) => size >= minSize && size <= maxSize,\n );\n\n if (validFontSizes.length === 0) {\n return undefined;\n }\n\n // Find the closest font size\n let closestSize = validFontSizes[0];\n let smallestDiff = Math.abs(inputSize - closestSize);\n\n for (const size of validFontSizes) {\n const diff = Math.abs(inputSize - size);\n if (diff < smallestDiff) {\n smallestDiff = diff;\n closestSize = size;\n }\n }\n\n // Return the closest font size as a string with 'px'\n return `${closestSize}px`;\n };\nexport const fontColorValue = (value: unknown) => {\n // A color that is not text is dropped instead of throwing (QRV-749 review).\n if (typeof value !== 'string') return undefined;\n const normalizedColor = value.toLowerCase();\n return normalizedColor;\n};\n\nexport const validateBoolean = (value: unknown): boolean | undefined =>\n typeof value === 'boolean' ? value : undefined;\n\nconst validateUnsavedChangesBehavior = (value: unknown): string | undefined => {\n if (typeof value !== 'string') return undefined;\n return ['prompt', 'autoSave', 'discard'].includes(value)\n ? value\n : undefined;\n};\n\nconst validateType = (validValues: string[]) => (value: unknown) => {\n if (typeof value !== 'string') return undefined;\n const receivedValue = value.toUpperCase();\n return validValues.includes(receivedValue) ? receivedValue : undefined;\n};\n\nexport const DX_VALIDATOR_MAP: ValidationMap = {\n 'customStyles.header.height': numberMinMaxValue(300, 10),\n 'customStyles.text.fontSize': fontSizeMinMaxValue(8, 96),\n 'customStyles.text.fontColor': fontColorValue,\n 'customStyles.container.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.line.lineWidth': numberMinMaxValue(20, 1),\n 'customStyles.rectangle.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.ellipse.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.container.borderRadius': numberMinMaxValue(100, 0),\n\n // Filter Controls: MULTISELECT LIST\n 'customStyles.filterList.type': validateType(['LIST', 'DROPDOWN']),\n 'customStyles.filterList.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: INPUTBOX\n 'customStyles.filterInput.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: DATE\n 'customStyles.filterDate.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Unsaved Changes Behavior\n unsavedChangesBehavior: validateUnsavedChangesBehavior,\n\n // Download modal\n 'downloadModal.subscribeMyself': validateBoolean,\n};\n\nexport const DOWNLOAD_MODAL_VALIDATOR_MAP: ValidationMap = {\n subscribeMyself: validateBoolean,\n};\n","import { WidgetConfig } from '../models/structure.models';\n\n// Keys of the export modal (qui-schedule-exporting-modal) at its own root; hosts import them under their downloadModal section.\nexport const DOWNLOAD_MODAL_V1_KEYS = [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n 'qSubscribeBanner',\n 'qOwnerLabel',\n 'qSubscribeOwner',\n 'qSubscribeOrganization',\n 'qSubscribeMyself',\n 'qSubscribeSpecificPeople',\n 'qIncludeHyperlinks',\n 'qIncludeHeader',\n] as const;\n\nexport type DownloadModalKey = (typeof DOWNLOAD_MODAL_V1_KEYS)[number];\n\n// The Subscribe elements split what qSubscribeOption controlled, so a keep list naming it keeps them too.\nexport const DOWNLOAD_MODAL_V1_KEEP_INHERITANCE: Record<\n string,\n DownloadModalKey\n> = {\n qSubscribeBanner: 'qSubscribeOption',\n qOwnerLabel: 'qSubscribeOption',\n qSubscribeOwner: 'qSubscribeOption',\n qSubscribeOrganization: 'qSubscribeOption',\n qSubscribeMyself: 'qSubscribeOption',\n qSubscribeSpecificPeople: 'qSubscribeOption',\n};\n\n// The same aliases for a host that lists the modal keys under one of its sections.\nexport const hostKeepInheritance = (\n section = 'downloadModal',\n): Record<string, string> =>\n Object.fromEntries(\n Object.entries(DOWNLOAD_MODAL_V1_KEEP_INHERITANCE).map(\n ([key, alias]) => [`${section}.${key}`, `${section}.${alias}`],\n ),\n );\n\nexport const DOWNLOAD_MODAL_V1_DEFAULTS = {\n subscribeMyself: true,\n};\n\nconst downloadModalV1Config: WidgetConfig = {\n version: '1.0',\n keepInheritance: DOWNLOAD_MODAL_V1_KEEP_INHERITANCE,\n baseStructure: {\n defaults: { ...DOWNLOAD_MODAL_V1_DEFAULTS },\n ...Object.fromEntries(DOWNLOAD_MODAL_V1_KEYS.map((key) => [key, true])),\n },\n};\n\nexport default downloadModalV1Config;\n","import { WidgetConfig } from '../models/structure.models';\nimport {\n DOWNLOAD_MODAL_V1_KEYS,\n hostKeepInheritance,\n} from './download-modal.structure.v1';\n\n// The download modal's keys come from its own structure; qExportVersion and the two warnings are DashboardX's slot content.\nconst DOWNLOAD_MODAL_HOST_KEYS = [\n 'qExportVersion',\n 'qSavedVersionWarning',\n 'qUnsavedVersionWarning',\n];\n\nconst dashboardV1Config: WidgetConfig = {\n version: '1.0',\n keepInheritance: hostKeepInheritance('downloadModal'),\n baseStructure: {\n views: {\n list: [\n 'navBar',\n 'assetList',\n 'controlBarLeft',\n 'controlBarRight',\n 'qQvTokenExpiredMessage',\n 'duplicateModal',\n ],\n design: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n 'canvas',\n 'qQvTokenExpiredMessage',\n 'duplicateModal',\n ],\n preview: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'filterPanel',\n 'qGoToDashBackButton',\n 'qQvTokenExpiredMessage',\n ],\n endUser: [\n 'navBar',\n 'toolBar',\n 'filterPanel',\n 'downloadModal',\n 'canvas',\n 'qGoToDashBackButton',\n 'qQvTokenExpiredMessage',\n ],\n },\n\n navBar: ['qAppTitle', 'qBackButton'],\n\n endUserTopBar: ['indicator', 'options'],\n\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditDash',\n 'qUseDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qDuplDashAndCharts',\n 'qManageSharing',\n 'qManageTags',\n ],\n card: [\n 'qFavorite',\n 'qCreatedDate',\n 'qLastModifDate',\n 'qStatus',\n 'qNumberOfCharts',\n 'qSharing',\n 'qSharingIcon',\n 'qOwner',\n 'qDescription',\n 'qTags',\n ],\n table: [\n 'qFavorite',\n 'qCreatedDate',\n 'qLastModifDate',\n 'qStatus',\n 'qNumberOfCharts',\n 'qSharing',\n 'qSharingIcon',\n 'qOwner',\n 'qDescription',\n 'qTags',\n ],\n },\n },\n\n canvas: {\n defaults: {\n removeElement: true,\n dragElement: true,\n resizeElement: true,\n },\n },\n\n controlBarLeft: ['qCreateDash'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qFilterByTags',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qUnpublish',\n 'qSwitchMode',\n 'qDesign',\n 'qDownloadList',\n ],\n\n header: [\n 'qDashFavorite',\n 'qSharingIcon',\n 'qDashName',\n 'qDashDesc',\n 'qTags',\n {\n qOptionsMenu: [\n 'qDuplDash',\n 'qDeleteDash',\n 'qManageSharing',\n 'qManageTags',\n ],\n },\n ],\n\n menuBar: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuDuplicateDashAndCharts',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qManageSharing',\n 'qManageTags',\n 'qMnuDeleteDash',\n {\n qCreateDataset: [\n 'qCreateCustomDataset',\n 'qViewCustomDataset',\n ],\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n edit: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n grid: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n insert: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n 'qMnuSingleSelectList',\n ],\n qMnuInsertShape: [\n 'qMnuLine',\n 'qMnuRectangle',\n 'qMnuEllipse',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n qMnuArrange: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n },\n toolBar: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n 'qSingleSelectList',\n ],\n qInsertShape: ['qLine', 'qRectangle', 'qEllipse'],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n qCreateDataset: ['qCreateCustomDataset', 'qViewCustomDataset'],\n },\n 'qInsertText',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n\n // only for end user\n 'qDashVersion',\n 'qGetDashVersion',\n 'qSourceDashBanner',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qSwitchMode',\n 'qHideToolBar',\n 'qDownloadList',\n 'qChangeLayout',\n ],\n qQvTokenExpiredMessage: true,\n qGoToDashBackButton: true,\n configPanel: true,\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n viewOnlyFilterScope: true,\n dashFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n containerFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [...DOWNLOAD_MODAL_V1_KEYS, ...DOWNLOAD_MODAL_HOST_KEYS],\n duplicateModal: [\n 'qCharts',\n 'qFilters',\n 'qDashActions',\n {\n options: {\n defaults: {\n qCharts: true,\n qFilters: true,\n qDashActions: true,\n },\n },\n },\n ],\n subModules: {\n chartPanel: {},\n chartGallery: {},\n chartBuilder: {},\n },\n },\n};\n\nexport default dashboardV1Config;\n","import { WidgetConfig } from '../models/structure.models';\nimport {\n DOWNLOAD_MODAL_V1_KEYS,\n hostKeepInheritance,\n} from './download-modal.structure.v1';\n\nconst downloadManagerV1Config: WidgetConfig = {\n version: '1.0',\n keepInheritance: hostKeepInheritance('downloadModal'),\n baseStructure: {\n views: {\n main: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'downloadModal',\n ],\n detail: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'bottomBar',\n 'downloadModal',\n ],\n },\n header: ['qTitle'],\n controlBar: {\n defaults: {\n filters: {},\n },\n qFilterByFileType: [\n 'qTypePDF',\n 'qTypeJPG',\n 'qTypeCSV',\n 'qTypeExcel',\n 'qTypeZIP',\n ],\n qFilterByExecution: ['qExecScheduled', 'qExecOthers'],\n qFilterByWidget: [\n 'qWidgetAnalyze',\n 'qWidgetAutomation',\n 'qWidgetDash',\n 'qWidgetLegacyDash',\n 'qWidgetSubscriptions',\n 'qWidgetPPR',\n ],\n qFilterByAsset: true,\n qFilterByOrganization: true,\n qFilterByOwner: true,\n qSearch: true,\n qRemoveFilters: true,\n qScheduleDetail: true,\n qFilesExported: true,\n qMoreInfo: true,\n },\n\n assetList: {\n asset: [\n {\n optionMenu: [\n 'qDelete',\n 'qMoreInfo',\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qUnsubscribe',\n 'qSubscribe',\n ],\n table: [\n 'qType',\n 'qSchedule',\n 'qSize',\n 'qCreationDate',\n 'qExpirationDate',\n 'qDownload',\n 'qOrganization',\n 'qOwner',\n ],\n },\n 'qDrillToDetail',\n 'qUnsubscribe',\n 'qSubscribe',\n ],\n },\n\n bottomBar: [\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qDelete',\n ],\n\n // The export modal's own keys, so a scope of this section carries all of them.\n downloadModal: [...DOWNLOAD_MODAL_V1_KEYS],\n\n moreInfoModal: [\n 'qFileType',\n 'qSource',\n 'qOwner',\n 'qApplication',\n 'qPath',\n 'qOrganization',\n 'qErrorMessage',\n ],\n },\n};\n\nexport default downloadManagerV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst reportV1Config: WidgetConfig = {\n version: '1.0',\n\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'dataPanel',\n ],\n preview: [\n 'navBar',\n 'tabBar',\n 'toolBar',\n 'pagePreview',\n 'controlBarRight',\n 'downloadModal',\n ],\n },\n navBar: ['qAppTitle', 'qBackButton'],\n tabBar: ['qTabSelector', 'qScrollButton'],\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditRep',\n 'qRenameRep',\n 'qDeleteRep',\n 'qDuplRep',\n ],\n },\n },\n\n controlBarLeft: ['qCreateRep'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qPreview',\n 'qDesign',\n ],\n\n menuBar: {\n edit: ['qCopyElement', 'qPasteElement'],\n },\n toolBar: [\n 'qPageSetup',\n {\n qInsertShape: ['qLine', 'qRectangle', 'qEllipse'],\n grid: ['qDisplayRuler', 'qDisplayGrid'],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n qDownloadReport: [\n 'qReportPDF',\n 'qReportExcel',\n ],\n },\n 'qUndoRedo',\n 'qInsertDTable',\n 'qInsertSTable',\n 'qInsertImage',\n 'qInsertText',\n 'qInsertPageGroup',\n 'qInsertFormula',\n 'qInsertBucket',\n 'qInsertPageBreak',\n ],\n configPanel: true,\n dataPanel: {\n tabDataset: ['qChangeDataSet', 'qSearch'],\n tabParameters: ['qAddParameter', 'qSearch'],\n },\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n repoFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n },\n};\n\nexport default reportV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst optionMenuChildren = [\n 'qEditChart',\n 'qDuplicateChart',\n {\n qDownloadChart: [\n 'qChartJPG',\n 'qChartPDF',\n 'qChartCSV',\n 'qChartSummary',\n 'qChartExcel',\n ],\n },\n];\n\nconst headerConfig = [\n 'qChartName',\n 'qFitPanel',\n 'qChartSelection',\n 'qColumnSection',\n 'qSorting',\n 'qColumnReplacement',\n 'qColumnAggregation',\n 'qColumnGrouping',\n 'qDateGrouping',\n 'qColumnSelection',\n 'qResetColumnsWidth',\n 'qSmartAnalyzer',\n { optionMenu: optionMenuChildren },\n {\n qFilter: [\n 'qAddFilter',\n { dashFilterScope: ['qEditFilter', 'qDeleteFilter'] },\n { tabFilterScope: ['qEditFilter', 'qDeleteFilter'] },\n { panelFilterScope: ['qEditFilter', 'qDeleteFilter'] },\n ],\n },\n {\n optionDateGrouping: [\n 'qDayOnly',\n 'qMonth',\n 'qMonthOnly',\n 'qQuarter',\n 'qQuarterOnly',\n 'qWeek',\n 'qYear',\n 'qDay',\n 'qHour',\n 'qHourOnly',\n 'qMinute',\n 'qMinuteOnly',\n 'qSecond',\n 'qSecondOnly',\n ],\n },\n];\n\nconst floatingMenuConfig = [\n ...headerConfig.filter(\n (item) => typeof item !== 'object' || !('optionMenu' in item),\n ),\n ...optionMenuChildren,\n];\n\nconst chartPanelV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n header: headerConfig,\n floatingMenu: floatingMenuConfig,\n menuLayout: { defaults: { menuLayout: undefined } },\n body: ['actions', 'qComparativeAnalysis'],\n },\n};\n\nexport default chartPanelV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst chartGalleryV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n chartTypeFilter: true,\n showSummary: true,\n inputSearch: true,\n switch: true,\n subModules: {\n chartPanel: {\n title: false,\n },\n },\n },\n};\nexport default chartGalleryV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst chartBuilderV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n chartTypeFilter: true,\n showSummary: true,\n inputSearch: true,\n switch: true,\n subModules: {\n chartPanel: {\n title: false,\n },\n },\n },\n};\nexport default chartBuilderV1Config;\n","import { Widget, WidgetVersion } from './structure.constants';\nimport { WidgetConfigsMap } from './widget.config';\nimport { ValidationMap } from '../models/structure.models';\nimport {\n DOWNLOAD_MODAL_VALIDATOR_MAP,\n DX_VALIDATOR_MAP,\n} from '../utils/defaults.helpers';\nimport dashboardV1Config from '../structures/dashboard.structure.v1';\nimport downloadManagerV1Config from '../structures/download-manager.structure.v1';\nimport reportV1Config from '../structures/report.structure.v1';\nimport downloadModalV1Config from '../structures/download-modal.structure.v1';\nimport chartPanelV1Config from '../structures/chart-panel.structure.v1';\nimport chartGalleryV1Config from '../structures/chart-gallery.structure.v1';\nimport chartBuilderV1Config from '../structures/chart-builder.structure.v1';\n\nexport const widgetConfigs: WidgetConfigsMap = {\n [Widget.DASHBOARD]: {\n [WidgetVersion.v1]: dashboardV1Config,\n [WidgetVersion.latest]: dashboardV1Config,\n },\n [Widget.REPORT]: {\n [WidgetVersion.v1]: reportV1Config,\n [WidgetVersion.latest]: reportV1Config,\n },\n [Widget.DOWNLOAD_MANAGER]: {\n [WidgetVersion.v1]: downloadManagerV1Config,\n [WidgetVersion.latest]: downloadManagerV1Config,\n },\n [Widget.DOWNLOAD_MODAL]: {\n [WidgetVersion.v1]: downloadModalV1Config,\n [WidgetVersion.latest]: downloadModalV1Config,\n },\n [Widget.CHART_PANEL]: {\n [WidgetVersion.v1]: chartPanelV1Config,\n [WidgetVersion.latest]: chartPanelV1Config,\n },\n [Widget.CHART_GALLERY]: {\n [WidgetVersion.v1]: chartGalleryV1Config,\n [WidgetVersion.latest]: chartGalleryV1Config,\n },\n [Widget.CHART_BUILDER]: {\n [WidgetVersion.v1]: chartBuilderV1Config,\n [WidgetVersion.latest]: chartBuilderV1Config,\n },\n};\n\n// Validators applied to customization defaults when the caller passes none; the analytics widgets never validated theirs.\nexport const widgetValidators: Partial<Record<Widget, ValidationMap>> = {\n [Widget.DASHBOARD]: DX_VALIDATOR_MAP,\n [Widget.REPORT]: DX_VALIDATOR_MAP,\n [Widget.DOWNLOAD_MANAGER]: DX_VALIDATOR_MAP,\n [Widget.DOWNLOAD_MODAL]: DOWNLOAD_MODAL_VALIDATOR_MAP,\n};\n","export const allowedOperators = [\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n 'startsWith',\n 'endsWith',\n 'contains',\n] as const;\nexport type Operators = (typeof allowedOperators)[number];\n\nexport type ConditionValue = string | number;\n\nexport interface Condition {\n field: string;\n operator: Operators;\n value: ConditionValue;\n}\n\nexport type ConditionState = Record<string, ConditionValue>;\n\nexport type OperatorConditionFn = (\n value: Condition,\n state: Record<string, ConditionValue>,\n) => boolean;\n","import {\n Condition,\n ConditionState,\n ConditionValue,\n OperatorConditionFn,\n Operators,\n allowedOperators,\n} from '../models/conditions.models';\nimport { WidgetItemCondition } from '../models/structure.models';\n\nfunction isOperator(value: string): value is Operators {\n return allowedOperators.includes(value as Operators);\n}\n\nfunction getValue(condition: Condition, state: ConditionState): ConditionValue {\n return state[condition.field];\n}\n\nfunction _evalConditionOperator(\n condition: Condition,\n state: ConditionState,\n operator: (a: ConditionValue, b: ConditionValue) => boolean,\n): boolean {\n const value = getValue(condition, state);\n if (value == null) return false;\n return operator(value, condition.value);\n}\n\nconst OPERATOR_MAP: Record<Operators, OperatorConditionFn> = {\n '=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a == b),\n '!=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a != b),\n '<': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a < b),\n '<=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a <= b),\n '>': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a > b),\n '>=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a >= b),\n\n startsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' &&\n typeof b === 'string' &&\n a.startsWith(b),\n ),\n\n endsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.endsWith(b),\n ),\n\n contains: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.includes(b),\n ),\n};\n\nexport function evaluateCondition(\n state: ConditionState | undefined,\n ...conditions: Condition[]\n): boolean {\n if (!state) return false;\n if (conditions.length === 0) return true;\n return conditions.every((c) => _evalCondition(state, c));\n}\n\nfunction _evalCondition(state: ConditionState, condition: Condition): boolean {\n if (!isOperator(condition.operator)) return false;\n const evalFn = OPERATOR_MAP[condition.operator];\n return evalFn(condition, state);\n}\n\nexport function checkConditions(\n state: ConditionState | undefined,\n conditions: WidgetItemCondition[],\n): boolean {\n if (!state) return false;\n for (const cond of conditions) {\n if (cond.effect === 'keep') continue;\n const result = evaluateCondition(state, cond.condition);\n if (result) return false;\n }\n return true;\n}\n","export interface MergeDeepSettings {\n mergeMissingProperties?: boolean;\n mergeExistingValues?: boolean;\n}\n\nexport function mergeDeep(\n obj1: any,\n obj2: any,\n settings?: MergeDeepSettings,\n): any {\n const defaultSettings = {\n mergeExistingValues: settings?.mergeExistingValues ?? true,\n mergeMissingProperties: settings?.mergeMissingProperties ?? true,\n };\n\n if (!isValid(obj1, obj2)) return objectCopy(obj1);\n\n const result: any = Array.isArray(obj1) ? [] : {};\n\n for (const key in obj1) {\n const val1 = obj1[key];\n const val2 = obj2?.[key];\n\n if (isObject(val1) || Array.isArray(val1)) {\n result[key] = mergeDeep(val1, val2, defaultSettings);\n } else if (key in obj2 && defaultSettings.mergeExistingValues) {\n result[key] = val2;\n } else {\n result[key] = val1;\n }\n }\n\n if (defaultSettings.mergeMissingProperties) {\n for (const key in obj2) {\n if (!(key in result)) {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction isValid(obj1: any, obj2: any): boolean {\n return (\n (isObject(obj1) && isObject(obj2)) ||\n (Array.isArray(obj1) && Array.isArray(obj2))\n );\n}\n\nfunction objectCopy<T = any>(obj: T): T {\n if (obj === null || typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => objectCopy(item)) as any;\n }\n\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = objectCopy((obj as any)[key]);\n }\n }\n\n return result;\n}\n\nfunction isObject(value: any): boolean {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n","import { mergeDeep } from './merge.helpers';\nimport { Operators, allowedOperators } from '../models/conditions.models';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetItemCondition,\n WidgetViewMap,\n WidgetViewMapItem,\n} from '../models/structure.models';\n\nconst SUBMODULES_KEY = 'subModules';\n\n// Earlier layers' customizations of each embedded widget, by map key (`design::subModules`) and submodule name.\nexport type SubmoduleLayers = Record<\n string,\n Record<string, WidgetCustomization[]>\n>;\n\nexport const isPlainObject = (\n value: unknown,\n): value is Record<string, unknown> =>\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]';\n\nconst stringList = (value: unknown): string[] | undefined =>\n Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : undefined;\n\nfunction normalizeCondition(value: unknown) {\n if (!isPlainObject(value)) return undefined;\n const { field, operator, value: conditionValue } = value;\n if (typeof field !== 'string') return undefined;\n if (!allowedOperators.includes(operator as Operators)) return undefined;\n if (\n typeof conditionValue !== 'string' &&\n typeof conditionValue !== 'number'\n )\n return undefined;\n return { field, operator: operator as Operators, value: conditionValue };\n}\n\nfunction normalizeSubmodules(value: unknown) {\n if (!isPlainObject(value)) return undefined;\n const result: Record<string, WidgetCustomization> = {};\n Object.keys(value).forEach((name) => {\n const submodule = normalizeLayer(value[name]);\n if (submodule) result[name] = submodule;\n });\n return result;\n}\n\n/**\n * Keeps only what the engine reads from a stored layer, so a malformed definition is ignored instead of throwing (D25).\n */\nexport function normalizeLayer(\n value: unknown,\n allowViews = true,\n): WidgetCustomization | undefined {\n if (!isPlainObject(value)) return undefined;\n const layer: WidgetCustomization = {};\n const remove = stringList(value.remove);\n const keep = stringList(value.keep);\n if (remove) layer.remove = remove;\n if (keep) layer.keep = keep;\n if (isPlainObject(value.defaults)) layer.defaults = value.defaults;\n const subModules = normalizeSubmodules(value.subModules);\n if (subModules) layer.subModules = subModules;\n if (Array.isArray(value.conditional)) {\n layer.conditional = value.conditional.flatMap((item) => {\n const condition = isPlainObject(item)\n ? normalizeCondition(item.condition)\n : undefined;\n const rest = condition ? normalizeLayer(item, false) : undefined;\n return condition && rest ? [{ ...rest, condition }] : [];\n });\n }\n if (allowViews && isPlainObject(value.views)) {\n const views = value.views;\n layer.views = {};\n Object.keys(views).forEach((view) => {\n const viewLayer = normalizeLayer(views[view], false);\n if (viewLayer) layer.views![view] = viewLayer;\n });\n }\n return layer;\n}\n\nfunction mergeDefaults(\n previous: Record<string, unknown> | undefined,\n next: unknown,\n): Record<string, unknown> | undefined {\n if (!isPlainObject(next)) return previous;\n return previous ? mergeDeep(previous, next) : next;\n}\n\n/**\n * Returns the last layer with the defaults of every layer merged by leaf key, the last one winning (rule 4 of 3.3.2).\n */\nexport function mergeLayerDefaults(\n layers: WidgetCustomization[],\n): WidgetCustomization {\n const last = layers[layers.length - 1] ?? {};\n const viewNames = new Set(\n layers.flatMap((layer) => Object.keys(layer.views ?? {})),\n );\n const rootDefaults = layers.reduce<Record<string, unknown> | undefined>(\n (merged, layer) => mergeDefaults(merged, layer.defaults),\n undefined,\n );\n const views: Record<string, WidgetCustomization> = { ...last.views };\n viewNames.forEach((view) => {\n // Root and view defaults of each layer, in layer order, so a later root default beats an earlier view default.\n const viewDefaults = layers.reduce<Record<string, unknown> | undefined>(\n (merged, layer) =>\n mergeDefaults(\n mergeDefaults(merged, layer.defaults),\n layer.views?.[view]?.defaults,\n ),\n undefined,\n );\n if (viewDefaults) {\n views[view] = { ...last.views?.[view], defaults: viewDefaults };\n }\n });\n const effective: WidgetCustomization = { ...last };\n if (rootDefaults) effective.defaults = rootDefaults;\n if (viewNames.size) effective.views = views;\n return effective;\n}\n\nexport const isSubmodulesKey = (key: string) =>\n key === SUBMODULES_KEY || key.endsWith(`::${SUBMODULES_KEY}`);\n\ntype MapItemObject = {\n childMap?: WidgetViewMap;\n defaults?: Record<string, unknown>;\n conditions?: WidgetItemCondition[];\n};\n\nconst asItemObject = (value: WidgetViewMapItem): MapItemObject =>\n isPlainObject(value) ? (value as MapItemObject) : {};\n\nfunction intersectItem(\n current: WidgetViewMapItem,\n other: WidgetViewMapItem,\n): WidgetViewMapItem {\n const item = asItemObject(current);\n const otherItem = asItemObject(other);\n const childMap = item.childMap\n ? intersectViewMaps(item.childMap, otherItem.childMap ?? {})\n : undefined;\n const conditions = [\n ...(otherItem.conditions ?? []),\n ...(item.conditions ?? []),\n ];\n const hasDefaults =\n !!item.defaults && Object.keys(item.defaults).length > 0;\n const hasChildMap = !!childMap && Object.keys(childMap).length > 0;\n if (!hasDefaults && !hasChildMap && !conditions.length) {\n return isPlainObject(current) ? true : current;\n }\n return {\n ...(hasDefaults && { defaults: item.defaults }),\n ...(hasChildMap && { childMap }),\n ...(conditions.length && { conditions }),\n };\n}\n\n/**\n * Keeps the keys visible in both maps: a later layer can only remove what an earlier one left (rule 2 of 3.3.2).\n */\nexport function intersectViewMaps(\n current: WidgetViewMap,\n other: WidgetViewMap,\n): WidgetViewMap {\n const result: WidgetViewMap = {};\n Object.keys(current).forEach((key) => {\n if (isSubmodulesKey(key)) {\n result[key] = current[key];\n } else if (key in other) {\n result[key] = intersectItem(current[key], other[key]);\n }\n });\n return result;\n}\n\n/**\n * Collects the non-empty submodule customizations of earlier layers, so an embedded widget can apply them as its own layers.\n */\nexport function collectSubmoduleLayers(\n maps: WidgetViewMap[],\n): SubmoduleLayers | undefined {\n const result: SubmoduleLayers = {};\n maps.forEach((map) => {\n Object.keys(map)\n .filter(isSubmodulesKey)\n .forEach((key) => {\n const collection = map[key];\n if (!isPlainObject(collection)) return;\n Object.keys(collection).forEach((name) => {\n const submodule = collection[name];\n if (!isPlainObject(submodule)) return;\n if (!Object.keys(submodule).length) return;\n result[key] = result[key] ?? {};\n result[key][name] = [\n ...(result[key][name] ?? []),\n submodule as WidgetCustomization,\n ];\n });\n });\n });\n return Object.keys(result).length ? result : undefined;\n}\n","const LOG_PREFIX = '[widget-configurability]';\n\n// The package's single console sink; never pass credentials or tokens in a message.\nexport function logWarning(message: string): void {\n // eslint-disable-next-line no-console\n console.warn(`${LOG_PREFIX} ${message}`);\n}\n","import { ValidationMap, validateDefaults } from './defaults.helpers';\nimport { mergeDeep } from './merge.helpers';\nimport {\n STRUCTURE_RESERVED_WORDS,\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n SanitizeFn,\n StructureEngineOptions,\n WidgetConditionMap,\n WidgetConfig,\n WidgetItemCondition,\n WidgetStructure,\n WidgetStructureRoot,\n WidgetViewMap,\n} from '../models/structure.models';\n\ntype hasKeepOptType = 'root' | 'view';\n\ninterface CalculateViewOptions {\n viewKeys?: string[];\n pathPrefix?: string;\n viewPrefix?: string;\n hasKeepOption?: hasKeepOptType;\n prevDefaults?: Record<string, unknown>;\n customDefaults?: Record<string, unknown>;\n conditionMaps?: WidgetConditionMap[];\n checkCondition?: boolean;\n keepAliases?: Record<string, string>;\n}\n\ninterface ViewMapOptions extends StructureEngineOptions {\n keepInheritance?: Record<string, string>;\n}\n\ntype ConditionAffectValue = false | 'keep' | 'remove';\n\ninterface InsertionResult {\n canInsert: boolean;\n conditionAffect: ConditionAffectValue;\n}\n\n/**\n * constructs the permission map structure for a widget\n * @param config configuration of a widget\n * @param customization customization options for a widget\n * @param validationMap\n * @returns object representing the view map for the widget\n */\nexport function getWidgetStructure(\n config: WidgetConfig,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n options?: StructureEngineOptions,\n): WidgetViewMap {\n return calculateViewMap(\n config.baseStructure,\n customization,\n validationMap,\n {\n ...options,\n keepInheritance: config.keepInheritance,\n },\n );\n}\n\nexport function calculateViewMap(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n options?: ViewMapOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const keepAliases = options?.keepInheritance;\n if (config.views) {\n for (const view in config.views) {\n Object.assign(\n permissionMap,\n calculateSpecificViewMap(\n view,\n config,\n customization,\n validationMap,\n options,\n ),\n );\n }\n } else {\n const customDefaults = calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n options?.sanitize,\n );\n const prevDefaults = config.defaults;\n\n const submodules = calculateSubmodules(config, customization);\n if (submodules) {\n permissionMap.subModules = submodules;\n }\n\n const conditionMaps = calculateConditions(\n config,\n customization,\n undefined,\n keepAliases,\n );\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n prevDefaults,\n customDefaults,\n conditionMaps,\n keepAliases,\n }),\n );\n }\n return permissionMap;\n}\n\n/**\n * Defaults at the root of a structure without views (structure defaults merged with the customization's).\n */\nexport function calculateRootDefaults(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n sanitize?: SanitizeFn,\n): Record<string, unknown> | undefined {\n return calculateDefaults(\n config.defaults as Record<string, unknown> | undefined,\n undefined,\n calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n sanitize,\n ),\n );\n}\n\nfunction calculateSpecificViewMap(\n view: string,\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n options?: ViewMapOptions,\n) {\n const viewDefinition = config.views![view];\n const keepAliases = options?.keepInheritance;\n const customDefaults = calculateCustomDefaults(\n customization,\n view,\n validationMap,\n options?.sanitize,\n );\n const prevDefaults = config.defaults;\n\n const permissionMap: WidgetViewMap = {};\n\n const submodules = calculateSubmodules(config, customization, view);\n if (submodules) {\n permissionMap[`${view}::subModules`] = submodules;\n }\n\n const conditionMaps =\n options?.viewConditionals === false\n ? undefined\n : calculateConditions(config, customization, view, keepAliases);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n viewKeys: viewDefinition,\n viewPrefix: view,\n prevDefaults,\n customDefaults,\n conditionMaps,\n keepAliases,\n }),\n );\n\n return permissionMap;\n}\n\nfunction getViewPrefix(view?: string) {\n return view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n}\n\nfunction getStructureKey(key: string, viewPrefix?: string): string {\n const viewValue = getViewPrefix(viewPrefix);\n return `${viewValue}${key}`;\n}\n\nconst matchWildcard = (pattern: string, value: string): boolean => {\n const regexPattern = new RegExp(\n '^' + pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$',\n );\n return regexPattern.test(value);\n};\n\nfunction keyIsIncludedInKeep(\n key: string,\n customization: WidgetCustomization,\n keepAliases?: Record<string, string>,\n): boolean {\n const { keep = [] } = customization;\n const alias = keepAliases?.[key];\n for (const pattern of keep) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n if (alias && (pattern === alias || matchWildcard(pattern, alias))) {\n return true;\n }\n }\n return false;\n}\n\nfunction keyIsIncludedInRemove(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { remove = [] } = customization;\n for (const pattern of remove) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction canInsertInCustomization(\n key: string,\n customization: WidgetCustomization,\n validateKeepOption?: boolean,\n keepAliases?: Record<string, string>,\n): InsertionResult {\n const includedInRemove = keyIsIncludedInRemove(key, customization);\n const includedInKeep = keyIsIncludedInKeep(key, customization, keepAliases);\n const canInsert =\n !includedInRemove && (!validateKeepOption || includedInKeep);\n\n const keepValue = includedInKeep ? 'keep' : 'remove';\n const keepResult = validateKeepOption ? keepValue : false;\n const conditionAffect = includedInRemove ? 'remove' : keepResult;\n return { canInsert, conditionAffect };\n}\n\nfunction evalInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n keepAliases,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const customizationView = customization?.views?.[viewPrefix];\n\n const custCanInsert: InsertionResult = customization\n ? canInsertInCustomization(\n key,\n customization,\n hasKeepOption === 'root',\n keepAliases,\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n const custViewCanInsert: InsertionResult = customizationView\n ? canInsertInCustomization(\n key,\n customizationView,\n hasKeepOption === 'view',\n keepAliases,\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n\n // validate remove and keep attributes for views.\n const canInsert =\n (!viewKeys || viewKeys.some((x) => key.startsWith(x))) &&\n custCanInsert.canInsert &&\n custViewCanInsert.canInsert;\n\n const conditionAffect =\n custCanInsert.conditionAffect || custViewCanInsert.conditionAffect;\n\n return { canInsert, conditionAffect };\n}\n\nfunction canInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n checkCondition = false,\n keepAliases,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const result = evalInsertKey(\n key,\n { viewKeys, viewPrefix, hasKeepOption, checkCondition, keepAliases },\n customization,\n );\n const canInsert = checkCondition || result.canInsert;\n return { canInsert, conditionAffect: result.conditionAffect };\n}\n\nfunction addKeyToPermissions(\n permissionMap: WidgetViewMap,\n key: string,\n { viewPrefix, checkCondition, conditionMaps }: CalculateViewOptions,\n defaults?: Record<string, unknown>,\n childMap?: WidgetViewMap,\n conditionAffect?: ConditionAffectValue,\n) {\n const keyAttr = getStructureKey(key, viewPrefix);\n\n if (checkCondition && conditionAffect != null) {\n permissionMap[keyAttr] = conditionAffect;\n return;\n }\n\n const addDefaultKey = defaults && Object.keys(defaults).length > 0;\n const addChildMapKey = childMap && Object.keys(childMap).length > 0;\n const conditions = getConditionsForKey(key, conditionMaps);\n\n permissionMap[keyAttr] =\n !addDefaultKey && !addChildMapKey && !conditions\n ? true\n : {\n ...(addDefaultKey && { defaults }),\n ...(addChildMapKey && { childMap }),\n ...(conditions && { conditions }),\n };\n}\n\nfunction calculatePermissionMap(\n config: WidgetStructure | Record<string, WidgetStructure>,\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n pathPrefix = '',\n viewPrefix = '',\n hasKeepOption: previousKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n keepAliases,\n }: CalculateViewOptions,\n) {\n const permissionMap: WidgetViewMap = {};\n const currentKeepOption = nodeHasKeepOption(config, customization, {\n viewPrefix,\n pathPrefix,\n });\n\n for (const key in config) {\n if (STRUCTURE_RESERVED_WORDS.includes(key)) {\n continue;\n }\n const hasKeepOption = previousKeepOption ?? currentKeepOption;\n const configValue = config[key];\n const currentKey = `${pathPrefix}${key}`;\n const newPrefix = `${currentKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n\n const canInsertResult = canInsertKey(\n currentKey,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n keepAliases,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n continue;\n }\n\n let defaults = prevDefaults;\n let childMap: WidgetViewMap | undefined = undefined;\n if (Array.isArray(configValue)) {\n // if it's an array, every element is a key\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n childMap = calculatePermissionMapArray(configValue, customization, {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n keepAliases,\n });\n\n Object.assign(permissionMap, childMap);\n } else if (\n typeof configValue === 'object' &&\n !Array.isArray(configValue)\n ) {\n defaults = calculateDefaults(\n prevDefaults,\n configValue.defaults as Record<string, unknown>,\n customDefaults,\n );\n // if it's an object, a recursive call is made\n childMap = calculatePermissionMap(\n configValue as WidgetStructure,\n customization,\n {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults: defaults,\n conditionMaps,\n checkCondition,\n keepAliases,\n },\n );\n Object.assign(permissionMap, childMap);\n } else if (typeof configValue === 'boolean' && !configValue) {\n // if it's a boolean and its false, it should be ignored\n continue;\n } else if (typeof configValue === 'boolean' && configValue) {\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n }\n\n addKeyToPermissions(\n permissionMap,\n currentKey,\n {\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaults,\n childMap,\n canInsertResult.conditionAffect,\n );\n }\n\n return permissionMap;\n}\n\nfunction getConditionsForKey(\n key: string,\n conditionMaps: WidgetConditionMap[] | undefined,\n): WidgetItemCondition[] | undefined {\n if (!conditionMaps || conditionMaps.length === 0) return undefined;\n const result = conditionMaps.reduce((result, x) => {\n const mapValue = x.map[key];\n if (\n typeof mapValue === 'string' &&\n (mapValue === 'keep' || mapValue === 'remove')\n ) {\n result.push({\n effect: mapValue,\n condition: x.condition,\n });\n }\n return result;\n }, [] as WidgetItemCondition[]);\n\n if (result.length === 0) return undefined;\n return result;\n}\n\nfunction calculateConditions(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n keepAliases?: Record<string, string>,\n): WidgetConditionMap[] | undefined {\n const rootConditionals = customization?.conditional;\n const viewConditionals = view\n ? customization?.views?.[view]?.conditional\n : undefined;\n\n if (!rootConditionals && !viewConditionals) return undefined;\n\n const customConditionals = [\n ...(rootConditionals ?? []),\n ...(viewConditionals ?? []),\n ];\n return (\n customConditionals?.map((c) => ({\n condition: c.condition,\n map: calculatePermissionMap(config, c, {\n checkCondition: true,\n keepAliases,\n }),\n })) ?? undefined\n );\n}\n\nfunction calculateSubmodules(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n) {\n const viewSubmodules = view\n ? customization?.views?.[view]?.subModules\n : undefined;\n const customRootSubmodules = customization?.subModules;\n const customSubmodules = viewSubmodules\n ? mergeObjects(customRootSubmodules, viewSubmodules)\n : customRootSubmodules;\n return mergeObjects(config.subModules, customSubmodules);\n}\n\nfunction calculateCustomDefaults(\n customization?: WidgetCustomization,\n view?: string,\n validationMap?: ValidationMap,\n sanitize?: SanitizeFn,\n) {\n const viewDefaults = view\n ? customization?.views?.[view]?.defaults\n : undefined;\n const customRootDefaults = customization?.defaults ?? {};\n const defaultObj = viewDefaults\n ? mergeObjects(customRootDefaults, viewDefaults)\n : customRootDefaults;\n if (!defaultObj || (!validationMap && !sanitize)) return defaultObj;\n return validateDefaults(defaultObj, validationMap ?? {}, sanitize);\n}\n\nfunction calculateDefaults(\n structureDefaults: Record<string, unknown> | undefined,\n itemDefaults: Record<string, unknown> | undefined,\n customDefaults: Record<string, unknown> | undefined,\n) {\n const baseDefaults = mergeObjects(structureDefaults, itemDefaults);\n return mergeObjects(baseDefaults, customDefaults);\n}\n\nfunction mergeObjects(\n prevObj: Record<string, unknown> | undefined,\n newObj: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n // if both of configurations are falsy return undefined;\n if (!newObj && !prevObj) return undefined;\n // if just the prev defaults has value, return it\n if (!newObj) return prevObj;\n // if the newDefaults value is different than an object\n if (typeof newObj !== 'object' || Array.isArray(newObj)) return prevObj;\n return !prevObj ? newObj : mergeDeep(prevObj, newObj);\n}\n\nfunction mapObjKeys(\n configValue: WidgetStructure,\n { pathPrefix }: CalculateViewOptions,\n) {\n return Object.keys(configValue).map((x) =>\n getStructureKey(`${pathPrefix}${x}`),\n );\n}\n\nfunction mapArrayKeys(\n configValue: (string | WidgetStructure)[],\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n) {\n return configValue.reduce((result, value) => {\n if (typeof value === 'string') {\n result.push(getStructureKey(`${pathPrefix}${value}`));\n } else {\n result.push(...mapObjKeys(value, { viewPrefix, pathPrefix }));\n }\n return result;\n }, [] as string[]);\n}\n\nfunction nodeHasKeepOption(\n configValue: WidgetStructure | (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n): hasKeepOptType | undefined {\n if (!customization) return;\n const nodeKeys = Array.isArray(configValue)\n ? mapArrayKeys(configValue, { viewPrefix, pathPrefix })\n : mapObjKeys(configValue, { viewPrefix, pathPrefix });\n const customizationView = viewPrefix\n ? customization?.views?.[viewPrefix]\n : undefined;\n for (const key of nodeKeys) {\n if (keyIsIncludedInKeep(key, customization)) {\n return 'root';\n } else if (\n customizationView &&\n keyIsIncludedInKeep(key, customizationView)\n ) {\n return 'view';\n }\n }\n return undefined;\n}\n\nfunction calculatePermissionMapArray(\n configValue: (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n viewPrefix,\n pathPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n keepAliases,\n }: CalculateViewOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const hasKeepOption = nodeHasKeepOption(configValue, customization, {\n viewPrefix,\n pathPrefix,\n });\n const defaultsSimple = calculateDefaults(\n prevDefaults,\n undefined,\n customDefaults,\n );\n\n configValue.forEach((option) => {\n const fullPath = `${pathPrefix}${option}`;\n if (typeof option === 'string') {\n const canInsertResult = canInsertKey(\n fullPath,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n keepAliases,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n return;\n }\n addKeyToPermissions(\n permissionMap,\n fullPath,\n {\n viewKeys,\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaultsSimple,\n undefined,\n canInsertResult.conditionAffect,\n );\n } else {\n Object.assign(\n permissionMap,\n calculatePermissionMap(option, customization, {\n viewKeys,\n pathPrefix,\n viewPrefix,\n hasKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n keepAliases,\n }),\n );\n }\n });\n return permissionMap;\n}\n","import { widgetConfigs, widgetValidators } from './constants/configs';\nimport {\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n WIDGET_STRUCTURE_SCOPE_FORMAT,\n WIDGET_STRUCTURE_SCOPE_KIND,\n Widget,\n WidgetVersion,\n} from './constants/structure.constants';\nimport { ConditionState } from './models/conditions.models';\nimport { WidgetCustomization } from './models/customization.models';\nimport { ScopeOptions, WidgetStructureScope } from './models/scope.models';\nimport {\n BuildStructureOptions,\n WidgetConfig,\n WidgetItemCondition,\n WidgetViewMap,\n} from './models/structure.models';\nimport { checkConditions } from './utils/conditions.helpers';\nimport {\n SubmoduleLayers,\n collectSubmoduleLayers,\n intersectViewMaps,\n isPlainObject,\n mergeLayerDefaults,\n normalizeLayer,\n} from './utils/layers.helpers';\nimport { logWarning } from './utils/logger.helpers';\nimport {\n calculateRootDefaults,\n calculateViewMap,\n getWidgetStructure,\n} from './utils/structural.helpers';\n\nexport function getWidgetConfig(\n widget: Widget,\n version?: WidgetVersion,\n): WidgetConfig {\n const versionSet = version ?? WidgetVersion.latest;\n const widgetConfigurability = widgetConfigs[widget]?.[versionSet];\n if (!widgetConfigurability) {\n throw new Error(\n `No config found for widget ${widget} and version ${version}`,\n );\n }\n return widgetConfigurability;\n}\n\nexport function buildStructure(\n widget: Widget,\n customization?: WidgetCustomization,\n version?: WidgetVersion,\n options?: BuildStructureOptions,\n) {\n const config = getWidgetConfig(widget, version);\n const validationMap = options?.validationMap ?? widgetValidators[widget];\n const layers = (options?.layers ?? [])\n .map((layer) => normalizeLayer(layer))\n .filter((layer): layer is WidgetCustomization => !!layer);\n if (layers.length) {\n try {\n return buildLayeredStructure(\n config,\n layers,\n customization,\n validationMap,\n options,\n );\n } catch (error) {\n logWarning(\n `ignoring the ${widget} customization layers: ${\n (error as Error).message\n }`,\n );\n }\n }\n const structureMap = getWidgetStructure(\n config,\n customization,\n validationMap,\n options,\n );\n const rootDefaults = config.baseStructure.views\n ? undefined\n : calculateRootDefaults(\n config.baseStructure,\n customization,\n validationMap,\n options?.sanitize,\n );\n return new WidgetStructureInstance(structureMap, rootDefaults);\n}\n\nfunction buildLayeredStructure(\n config: WidgetConfig,\n layers: WidgetCustomization[],\n customization: WidgetCustomization | undefined,\n validationMap: BuildStructureOptions['validationMap'],\n options: BuildStructureOptions | undefined,\n) {\n const inline = isPlainObject(customization) ? customization : {};\n const effective = mergeLayerDefaults([...layers, inline]);\n const engineOptions = { viewConditionals: options?.viewConditionals };\n const layerMaps = layers.map((layer) =>\n getWidgetStructure(config, layer, undefined, engineOptions),\n );\n const structureMap = layerMaps.reduce(\n (result, layerMap) => intersectViewMaps(result, layerMap),\n getWidgetStructure(config, effective, validationMap, options),\n );\n const rootDefaults = config.baseStructure.views\n ? undefined\n : calculateRootDefaults(\n config.baseStructure,\n effective,\n validationMap,\n options?.sanitize,\n );\n return new WidgetStructureInstance(\n structureMap,\n rootDefaults,\n collectSubmoduleLayers(layerMaps),\n );\n}\n\nexport class WidgetStructureInstance {\n constructor(\n private viewMap: WidgetViewMap,\n private rootDefaults?: Record<string, unknown>,\n private submoduleLayers?: SubmoduleLayers,\n ) {}\n\n private getValue(key: string) {\n return this.viewMap[key];\n }\n\n isVisible(key: string, state?: ConditionState): boolean {\n const value = this.getValue(key);\n if (!value) return false;\n if (typeof value === 'object' && value.conditions) {\n return checkConditions(\n state,\n value.conditions as WidgetItemCondition[],\n );\n }\n return true;\n }\n\n getChildMap(key: string): WidgetViewMap | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.childMap\n )\n return undefined;\n return value.childMap as WidgetViewMap;\n }\n\n getSubmodule(\n module: string,\n view?: string,\n ): WidgetCustomization | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n const value = this.getValue(key);\n return (value as Record<string, WidgetCustomization>)?.[module];\n }\n\n /**\n * Submodule customizations of the stored layers, to pass as layers when building the embedded widget (structureFromSubmodule).\n */\n getSubmoduleLayers(\n module: string,\n view?: string,\n ): WidgetCustomization[] | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n return this.submoduleLayers?.[key]?.[module];\n }\n\n getDefaults(key: string): Record<string, unknown> | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.defaults\n )\n return undefined;\n return value.defaults as WidgetViewMap;\n }\n\n getRootDefaults(): Record<string, unknown> | undefined {\n return this.rootDefaults;\n }\n\n /**\n * Re-roots a resolved section (`design::downloadModal`) as plain JSON another bundle can rebuild a structure from.\n */\n scope(prefixKey: string, options: ScopeOptions = {}): WidgetStructureScope {\n const { widget, version, state } = options;\n const present = this.isVisible(prefixKey, state);\n const sectionPath =\n prefixKey.split(STRUCTURE_VIEW_NAME_SEPARATOR).pop() ?? prefixKey;\n const namespace =\n options.defaultsNamespace === undefined\n ? sectionPath.split(STRUCTURE_SECTION_NAME_SEPARATOR).pop()\n : options.defaultsNamespace;\n const sectionDefaults = present\n ? this.getDefaults(prefixKey)\n : undefined;\n const defaults = namespace\n ? (sectionDefaults?.[namespace] as\n | Record<string, unknown>\n | undefined)\n : sectionDefaults;\n const childPrefix = `${prefixKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n const map: Record<string, boolean> = {};\n let structureVersion: string | undefined;\n\n if (widget) {\n const config = getWidgetConfig(widget, version);\n structureVersion = config.version;\n Object.keys(calculateViewMap(config.baseStructure))\n .filter((key) => key !== 'subModules')\n .forEach((key) => {\n map[key] =\n present &&\n this.isVisible(`${childPrefix}${key}`, state);\n });\n } else if (present) {\n Object.keys(this.viewMap)\n .filter((key) => key.startsWith(childPrefix))\n .forEach((key) => {\n if (this.isVisible(key, state)) {\n map[key.slice(childPrefix.length)] = true;\n }\n });\n }\n\n return JSON.parse(\n JSON.stringify({\n kind: WIDGET_STRUCTURE_SCOPE_KIND,\n format: WIDGET_STRUCTURE_SCOPE_FORMAT,\n widget,\n structureVersion,\n source: prefixKey,\n present,\n map,\n defaults,\n }),\n );\n }\n}\n","import {\n Widget,\n WIDGET_STRUCTURE_SCOPE_FORMAT,\n WIDGET_STRUCTURE_SCOPE_KIND,\n WIDGET_SUBMODULE_NAMES,\n WidgetVersion,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport { WidgetStructureScope } from '../models/scope.models';\nimport { BuildStructureOptions } from '../models/structure.models';\nimport { buildStructure, WidgetStructureInstance } from '../structural-manager';\nimport { mergeDeep } from './merge.helpers';\n\nexport type StructureInput =\n | WidgetStructureScope\n | WidgetCustomization\n | null\n | undefined;\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport function isWidgetStructureScope(\n value: unknown,\n): value is WidgetStructureScope {\n return isPlainObject(value) && value.kind === WIDGET_STRUCTURE_SCOPE_KIND;\n}\n\n/**\n * Turns a resolved scope back into a customization of the widget it lists: hidden keys become an explicit remove list.\n */\nexport function scopeToCustomization(\n scope: WidgetStructureScope,\n): WidgetCustomization {\n const remove = scope.present\n ? Object.keys(scope.map ?? {}).filter((key) => scope.map[key] === false)\n : ['*'];\n return {\n ...(remove.length ? { remove } : {}),\n ...(scope.defaults ? { defaults: scope.defaults } : {}),\n };\n}\n\n/**\n * Extracts a section of a host's customization as a customization of the embedded widget, by evaluating it with the host's engine.\n */\nexport function extractCustomization(\n host: Widget,\n customization: WidgetCustomization | undefined,\n prefixKey: string,\n target: Widget,\n options?: BuildStructureOptions,\n): WidgetCustomization {\n const hostStructure = buildStructure(\n host,\n customization,\n undefined,\n options,\n );\n return scopeToCustomization(\n hostStructure.scope(prefixKey, { widget: target }),\n );\n}\n\nfunction submoduleOf(\n input: WidgetCustomization,\n module: string,\n view?: string,\n): WidgetCustomization | undefined {\n const root = input.subModules?.[module];\n const fromView = view\n ? input.views?.[view]?.subModules?.[module]\n : undefined;\n if (!fromView) return root;\n return root ? mergeDeep(root, fromView) : fromView;\n}\n\n/**\n * Builds an embedded widget's structure from what its host passes: a resolved scope, a raw customization of the widget, or a host\n * customization carrying the widget under subModules. Returns undefined for no input or an invalid one, so the receiver keeps its\n * legacy behaviour.\n */\nexport function structureFrom(\n widget: Widget,\n input: unknown,\n view?: string,\n version?: WidgetVersion,\n): WidgetStructureInstance | undefined {\n if (input === undefined || input === null) return undefined;\n try {\n if (!isPlainObject(input)) {\n throw new Error('expected an object');\n }\n if ('kind' in input) {\n if (!isWidgetStructureScope(input)) {\n throw new Error(`unknown kind ${String(input.kind)}`);\n }\n if (input.format !== WIDGET_STRUCTURE_SCOPE_FORMAT) {\n throw new Error(`unknown scope format ${input.format}`);\n }\n if (input.widget && input.widget !== widget) {\n throw new Error(`scope of ${input.widget}, expected ${widget}`);\n }\n return buildStructure(widget, scopeToCustomization(input), version);\n }\n const customization = input as WidgetCustomization;\n const module = WIDGET_SUBMODULE_NAMES[widget];\n const submodule = module\n ? submoduleOf(customization, module, view)\n : undefined;\n return buildStructure(widget, submodule ?? customization, version);\n } catch (error) {\n console.warn(\n `[widget-configurability] ignoring the ${widget} customization: ${(error as Error).message}`,\n );\n return undefined;\n }\n}\n\n/**\n * Builds the structure of a widget a host embeds as a submodule (chartPanel, chartGallery, chartBuilder, downloadModal).\n */\nexport function structureFromSubmodule(\n parent: WidgetStructureInstance,\n module: string,\n view?: string,\n options?: BuildStructureOptions,\n): WidgetStructureInstance {\n const widget = (Object.keys(WIDGET_SUBMODULE_NAMES) as Widget[]).find(\n (key) => WIDGET_SUBMODULE_NAMES[key] === module,\n );\n if (!widget) {\n throw new Error(`No widget registered for the submodule ${module}`);\n }\n const layers = parent.getSubmoduleLayers(module, view);\n return buildStructure(\n widget,\n parent.getSubmodule(module, view),\n undefined,\n layers\n ? { ...options, layers: [...(options?.layers ?? []), ...layers] }\n : options,\n );\n}\n","import { CHART_PANEL_LABELS } from './labels/chart-panel.labels';\nimport { DASHBOARD_LABELS } from './labels/dashboard.labels';\nimport {\n CustomizationLabel,\n CustomizationLabelMap,\n CustomizationLock,\n CustomizationTarget,\n CustomizationTreeNode,\n CustomizationTreeStateNode,\n} from './metadata.models';\nimport {\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n WIDGET_SUBMODULE_NAMES,\n Widget,\n WidgetVersion,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetStructureInstance,\n buildStructure,\n getWidgetConfig,\n} from '../structural-manager';\nimport { structureFromSubmodule } from '../utils/scope.helpers';\nimport { calculateViewMap } from '../utils/structural.helpers';\n\n// Label maps by widget; a new widget adds its map here and the guard spec checks it (3.7.1).\nexport const widgetMetadata: Partial<\n Record<Widget, { labels: CustomizationLabelMap }>\n> = {\n [Widget.DASHBOARD]: { labels: DASHBOARD_LABELS },\n [Widget.CHART_PANEL]: { labels: CHART_PANEL_LABELS },\n};\n\ninterface ResolvedTarget {\n widget: Widget;\n views: (string | undefined)[];\n}\n\nconst widgetOfSubmodule = (name: string): Widget => {\n const widget = (Object.keys(WIDGET_SUBMODULE_NAMES) as Widget[]).find(\n (key) => WIDGET_SUBMODULE_NAMES[key] === name,\n );\n if (!widget)\n throw new Error(`No widget registered for the submodule ${name}`);\n return widget;\n};\n\nfunction resolveTarget(\n widget: Widget,\n target: CustomizationTarget,\n version?: WidgetVersion,\n): ResolvedTarget {\n const embedded = target.subModules?.length\n ? widgetOfSubmodule(target.subModules[target.subModules.length - 1])\n : widget;\n const config = getWidgetConfig(\n embedded,\n target.subModules?.length ? undefined : version,\n );\n return {\n widget: embedded,\n views: config.baseStructure.views ? target.views : [undefined],\n };\n}\n\n/**\n * Keys of the structure in a view (or at the root), in structure order, without the view prefix.\n */\nexport function structureKeysOf(\n widget: Widget,\n view?: string,\n version?: WidgetVersion,\n): string[] {\n const map = calculateViewMap(\n getWidgetConfig(widget, version).baseStructure,\n );\n const prefix = view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n return Object.keys(map)\n .filter((key) =>\n view\n ? key.startsWith(prefix)\n : !key.includes(STRUCTURE_VIEW_NAME_SEPARATOR),\n )\n .map((key) => key.slice(prefix.length))\n .filter((key) => key !== 'subModules');\n}\n\nconst humanize = (id: string) =>\n id\n .replace(/^q(?=[A-Z])/, '')\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/^./, (char) => char.toUpperCase());\n\n/**\n * Label of a key: full path first, then the leaf id; a humanized id when neither exists.\n */\nexport function getCustomizationLabel(\n widget: Widget,\n key: string,\n): CustomizationLabel {\n const labels = widgetMetadata[widget]?.labels ?? {};\n const id = key.split(STRUCTURE_SECTION_NAME_SEPARATOR).pop() ?? key;\n return labels[key] ?? labels[id] ?? { label: humanize(id) };\n}\n\n/**\n * The labelled tree of a target: a widget view, or the structure of the embedded widget when subModules is set.\n */\nexport function getCustomizationTree(\n widget: Widget,\n target: CustomizationTarget,\n options: { version?: WidgetVersion } = {},\n): CustomizationTreeNode[] {\n const resolved = resolveTarget(widget, target, options.version);\n const ordered: string[] = [];\n resolved.views.forEach((view) =>\n structureKeysOf(\n resolved.widget,\n view,\n target.subModules?.length ? undefined : options.version,\n ).forEach((key) => {\n if (!ordered.includes(key)) ordered.push(key);\n }),\n );\n const roots: CustomizationTreeNode[] = [];\n const nodes = new Map<string, CustomizationTreeNode>();\n const ensure = (key: string): CustomizationTreeNode => {\n const existing = nodes.get(key);\n if (existing) return existing;\n const parts = key.split(STRUCTURE_SECTION_NAME_SEPARATOR);\n const { label, description } = getCustomizationLabel(\n resolved.widget,\n key,\n );\n const node: CustomizationTreeNode = {\n key,\n id: parts[parts.length - 1],\n label,\n ...(description && { description }),\n kind: 'item',\n };\n nodes.set(key, node);\n if (parts.length === 1) {\n roots.push(node);\n } else {\n const parent = ensure(\n parts.slice(0, -1).join(STRUCTURE_SECTION_NAME_SEPARATOR),\n );\n parent.kind = 'section';\n parent.children = [...(parent.children ?? []), node];\n }\n return node;\n };\n ordered.forEach(ensure);\n return roots;\n}\n\nfunction instanceFor(\n widget: Widget,\n customization: WidgetCustomization | undefined,\n target: CustomizationTarget,\n view?: string,\n) {\n let instance: WidgetStructureInstance = buildStructure(\n widget,\n customization,\n );\n (target.subModules ?? []).forEach((name) => {\n instance = structureFromSubmodule(instance, name, view);\n });\n return instance;\n}\n\nconst matches = (pattern: string, key: string) =>\n pattern === key ||\n new RegExp(`^${pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*')}$`).test(\n key,\n );\n\n// The block where the tree's switches write, and the blocks above it whose rules a switch cannot undo.\nfunction scopesOf(\n customization: WidgetCustomization | undefined,\n target: CustomizationTarget,\n view: string,\n) {\n const subModules = target.subModules ?? [];\n if (!subModules.length) {\n return { own: customization?.views?.[view], root: customization };\n }\n const name = subModules[subModules.length - 1];\n return {\n own: customization?.views?.[view]?.subModules?.[name],\n root: customization?.subModules?.[name],\n };\n}\n\nexport function lockOf(\n customization: WidgetCustomization | undefined,\n target: CustomizationTarget,\n view: string,\n key: string,\n hiddenParent?: string,\n): CustomizationLock | undefined {\n const { own, root } = scopesOf(customization, target, view);\n if (hiddenParent)\n return { verb: 'remove', pattern: hiddenParent, scope: 'parent' };\n if (own?.remove?.includes(key)) return undefined;\n const rootRemove = root?.remove?.find((pattern) => matches(pattern, key));\n if (rootRemove)\n return { verb: 'remove', pattern: rootRemove, scope: 'root' };\n const viewRemove = own?.remove?.find((pattern) => matches(pattern, key));\n if (viewRemove)\n return { verb: 'remove', pattern: viewRemove, scope: 'view' };\n if (root?.keep?.length)\n return { verb: 'keep', pattern: root.keep.join(', '), scope: 'root' };\n if (own?.keep?.length)\n return { verb: 'keep', pattern: own.keep.join(', '), scope: 'view' };\n // Hidden by something the switches do not write (a conditional, a submodule rule of the host).\n return {\n verb: 'remove',\n pattern: key,\n scope:\n own?.conditional?.length || root?.conditional?.length\n ? 'conditional'\n : 'view',\n };\n}\n\n/**\n * The tree with the visibility of each node for a customization, computed with the real engine. A node whose\n * visibility differs between the target views is 'mixed'; a hidden node a switch cannot bring back is locked.\n */\nexport function getCustomizationTreeState(\n widget: Widget,\n customization: WidgetCustomization | undefined,\n target: CustomizationTarget,\n): CustomizationTreeStateNode[] {\n const tree = getCustomizationTree(widget, target);\n const embedded = !!target.subModules?.length;\n const instances = target.views.map((view) => ({\n view,\n instance: instanceFor(widget, customization, target, view),\n }));\n const isVisible = (\n instance: WidgetStructureInstance,\n view: string,\n key: string,\n ) =>\n instance.isVisible(\n embedded ? key : `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}${key}`,\n {},\n );\n\n const walk = (\n nodes: CustomizationTreeNode[],\n hiddenParents: (string | undefined)[],\n ): CustomizationTreeStateNode[] =>\n nodes.map((node) => {\n const states = instances.map(({ view, instance }) =>\n isVisible(instance, view, node.key),\n );\n const visible = states.every(Boolean)\n ? true\n : states.some(Boolean)\n ? 'mixed'\n : false;\n const locks =\n visible === false\n ? instances.map(({ view }, index) =>\n lockOf(\n customization,\n target,\n view,\n node.key,\n hiddenParents[index],\n ),\n )\n : [];\n const lockedBy =\n locks.length && locks.every(Boolean) ? locks[0] : undefined;\n const childParents = states.map(\n (state, index) =>\n hiddenParents[index] ?? (state ? undefined : node.key),\n );\n const { children, ...rest } = node;\n const stateNode: CustomizationTreeStateNode = { ...rest, visible };\n if (lockedBy) stateNode.lockedBy = lockedBy;\n if (children) stateNode.children = walk(children, childParents);\n return stateNode;\n });\n return walk(\n tree,\n instances.map(() => undefined),\n );\n}\n\nconst isEmptyObject = (value: unknown) =>\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n Object.keys(value).length === 0;\n\n/**\n * A new customization with the minimal change for one switch, applied to every view of the target. It only edits\n * the remove list of each view (or of the submodule inside it), never keep, conditional, defaults or root verbs.\n */\nexport function toggleCustomizationKey(\n customization: WidgetCustomization | undefined,\n target: CustomizationTarget,\n key: string,\n visible: boolean,\n): WidgetCustomization {\n const result: WidgetCustomization = JSON.parse(\n JSON.stringify(customization ?? {}),\n );\n target.views.forEach((view) => {\n const chain: Record<string, unknown>[] = [\n result as Record<string, unknown>,\n ];\n const step = (holder: Record<string, unknown>, name: string) => {\n holder[name] = (holder[name] as Record<string, unknown>) ?? {};\n chain.push(holder[name] as Record<string, unknown>);\n return holder[name] as Record<string, unknown>;\n };\n let block = step(\n step(result as Record<string, unknown>, 'views'),\n view,\n );\n (target.subModules ?? []).forEach((name) => {\n block = step(step(block, 'subModules'), name);\n });\n const remove = (block.remove as string[] | undefined) ?? [];\n if (!visible && !remove.includes(key)) block.remove = [...remove, key];\n if (visible) {\n const next = remove.filter((item) => item !== key);\n if (next.length) block.remove = next;\n else delete block.remove;\n }\n // Drops the empty objects this switch left behind, from the innermost out.\n for (let index = chain.length - 1; index > 0; index--) {\n const holder = chain[index - 1];\n const name = Object.keys(holder).find(\n (property) => holder[property] === chain[index],\n );\n if (name && isEmptyObject(chain[index])) delete holder[name];\n }\n });\n return result;\n}\n"]}
@@ -0,0 +1,47 @@
1
+ declare enum Widget {
2
+ DASHBOARD = "dashboard",
3
+ REPORT = "report",
4
+ DOWNLOAD_MANAGER = "download-manager",
5
+ DOWNLOAD_MODAL = "download-modal",
6
+ CHART_PANEL = "chart-panel",
7
+ CHART_GALLERY = "chart-gallery",
8
+ CHART_BUILDER = "chart-builder"
9
+ }
10
+ declare const WIDGET_SUBMODULE_NAMES: Partial<Record<Widget, string>>;
11
+ declare const WIDGET_STRUCTURE_SCOPE_KIND = "qrvey.widget-structure-scope";
12
+ declare const WIDGET_STRUCTURE_SCOPE_FORMAT = 1;
13
+ declare enum WidgetVersion {
14
+ v1 = "1.0",
15
+ latest = "latest"
16
+ }
17
+
18
+ declare const allowedOperators: readonly ["=", "!=", ">", ">=", "<", "<=", "startsWith", "endsWith", "contains"];
19
+ type Operators = (typeof allowedOperators)[number];
20
+ type ConditionValue = string | number;
21
+ interface Condition {
22
+ field: string;
23
+ operator: Operators;
24
+ value: ConditionValue;
25
+ }
26
+ type ConditionState = Record<string, ConditionValue>;
27
+
28
+ interface Verbs {
29
+ remove?: string[];
30
+ keep?: string[];
31
+ reorder?: string[];
32
+ }
33
+ interface CustomizationStructure extends Verbs {
34
+ defaults?: Record<string, unknown>;
35
+ subModules?: WidgetSubModuleCollection;
36
+ }
37
+ interface Conditional extends CustomizationStructure {
38
+ condition: Condition;
39
+ }
40
+ type View = Record<string, WidgetCustomization>;
41
+ type WidgetSubModuleCollection = Record<string, WidgetCustomization>;
42
+ interface WidgetCustomization extends CustomizationStructure {
43
+ conditional?: Conditional[];
44
+ views?: View;
45
+ }
46
+
47
+ export { type Condition as C, type Operators as O, type WidgetCustomization as W, Widget as a, WidgetVersion as b, type ConditionState as c, type ConditionValue as d, WIDGET_STRUCTURE_SCOPE_FORMAT as e, WIDGET_STRUCTURE_SCOPE_KIND as f, WIDGET_SUBMODULE_NAMES as g, type WidgetSubModuleCollection as h };