@acorex/modules 20.7.9 → 20.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assessment-management/index.d.ts +266 -1
- package/common/index.d.ts +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-5peOXPDz.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-ClgGS32i.mjs} +846 -24
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-ClgGS32i.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D6KO7up6.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-UmXUT6Xn.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D6KO7up6.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-UmXUT6Xn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-C4NilFjL.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-vVfXtden.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-C4NilFjL.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-vVfXtden.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-DtHvmJQD.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-C75zxKgV.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-DtHvmJQD.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-C75zxKgV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-BDRkvtin.mjs → acorex-modules-assessment-management-assessment-case.entity-CjhC5YAF.mjs} +3 -2
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-CjhC5YAF.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-MLP74IAt.mjs → acorex-modules-assessment-management-assessment-session.entity-B_IDiEzp.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-MLP74IAt.mjs.map → acorex-modules-assessment-management-assessment-session.entity-B_IDiEzp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-wtCw3l5I.mjs → acorex-modules-assessment-management-fill-assessment-session.command-zT5u3h_s.mjs} +40 -6
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-zT5u3h_s.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Cm7cniSG.mjs → acorex-modules-assessment-management-preview-questionnaire.command-BIXy9eut.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Cm7cniSG.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-BIXy9eut.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-BIGQMXEc.mjs → acorex-modules-assessment-management-question-bank-item.entity-BWYLXvCp.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-BIGQMXEc.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-BWYLXvCp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-BxN8kxpu.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-3wVcKQGE.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-BxN8kxpu.mjs.map → acorex-modules-assessment-management-questionnaire-builder-edit.component-3wVcKQGE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-CHA00XC0.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-meuUo7Vx.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-CHA00XC0.mjs.map → acorex-modules-assessment-management-questionnaire-builder-view.component-meuUo7Vx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-C-AX1MiC.mjs → acorex-modules-assessment-management-questionnaire-builder.component-CGgUUkOY.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-C-AX1MiC.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-CGgUUkOY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BY8YfBf1.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-kVnWtedV.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BY8YfBf1.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-kVnWtedV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-ktXkCzVb.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-D3k3J93r.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-ktXkCzVb.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-D3k3J93r.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-C2soGbpn.mjs → acorex-modules-assessment-management-questionnaire.entity-C8sX0d_p.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-C2soGbpn.mjs.map → acorex-modules-assessment-management-questionnaire.entity-C8sX0d_p.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-RvdyXryB.mjs → acorex-modules-assessment-management-view-session-answers.command-Czq7cj9R.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-RvdyXryB.mjs.map → acorex-modules-assessment-management-view-session-answers.command-Czq7cj9R.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Dg9sg98-.mjs → acorex-modules-auth-acorex-modules-auth-IIyirCLb.mjs} +14 -14
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-IIyirCLb.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-Dr8EZ7ZX.mjs → acorex-modules-auth-app-chooser.component-BGLW8Qtn.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-Dr8EZ7ZX.mjs.map → acorex-modules-auth-app-chooser.component-BGLW8Qtn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-C7Rt6tLk.mjs → acorex-modules-auth-login.module-uUQkWCgY.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-C7Rt6tLk.mjs.map → acorex-modules-auth-login.module-uUQkWCgY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-CgD5kk65.mjs → acorex-modules-auth-master.layout-XkwT3Slv.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-CgD5kk65.mjs.map → acorex-modules-auth-master.layout-XkwT3Slv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-CuGIGBVO.mjs → acorex-modules-auth-oauth-callback.component-C0p17V1b.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-CuGIGBVO.mjs.map → acorex-modules-auth-oauth-callback.component-C0p17V1b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DmohsIxt.mjs → acorex-modules-auth-password.component-CaH-OaIv.mjs} +4 -4
- package/fesm2022/acorex-modules-auth-password.component-CaH-OaIv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-C6TCAUm4.mjs → acorex-modules-auth-password.component-DDFOsrkt.mjs} +3 -3
- package/fesm2022/acorex-modules-auth-password.component-DDFOsrkt.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-C3162bwa.mjs → acorex-modules-auth-routes-Cik9Y3RJ.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-C3162bwa.mjs.map → acorex-modules-auth-routes-Cik9Y3RJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ce-n3WC9.mjs → acorex-modules-auth-tenant-chooser.component-B9VJd12P.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ce-n3WC9.mjs.map → acorex-modules-auth-tenant-chooser.component-B9VJd12P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-B2nPzX-3.mjs → acorex-modules-auth-two-factor.module-D1TKyIXZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-B2nPzX-3.mjs.map → acorex-modules-auth-two-factor.module-D1TKyIXZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-wVKJ2KIm.mjs → acorex-modules-auth-user-sessions.component-MZJramlf.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-wVKJ2KIm.mjs.map → acorex-modules-auth-user-sessions.component-MZJramlf.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-business-core.mjs +1 -1
- package/fesm2022/acorex-modules-business-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs +95 -0
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs.map +1 -0
- package/fesm2022/acorex-modules-calendar-management.mjs +68 -33
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +25 -17
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +387 -12
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs → acorex-modules-document-management-link-dialog.component-F1DkJ4Ns.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-link-dialog.component-F1DkJ4Ns.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs → acorex-modules-document-management-share-dialog.component-BV2JJmED.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-dialog.component-BV2JJmED.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs → acorex-modules-document-management-share-email-dialog.component-Dn-j0ETn.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-Dn-j0ETn.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management.mjs +3 -3
- package/fesm2022/acorex-modules-financial-core-data-source.provider-Do4rvgy4.mjs +73 -0
- package/fesm2022/acorex-modules-financial-core-data-source.provider-Do4rvgy4.mjs.map +1 -0
- package/fesm2022/acorex-modules-financial-core.mjs +4 -2
- package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +37 -405
- package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-CydmGF5Q.mjs → acorex-modules-help-desk-acorex-modules-help-desk-Clea9Hhv.mjs} +3 -3
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-CydmGF5Q.mjs.map → acorex-modules-help-desk-acorex-modules-help-desk-Clea9Hhv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-Bsq1FJId.mjs → acorex-modules-help-desk-capture-screen.component-CiQv__MW.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-Bsq1FJId.mjs.map → acorex-modules-help-desk-capture-screen.component-CiQv__MW.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/acorex-modules-locale-management.mjs +13 -355
- package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +140 -6
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-measurement-core.mjs +1 -1
- package/fesm2022/acorex-modules-measurement-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DVkP3JKC.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BAIx0BJe.mjs} +3 -3
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DVkP3JKC.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-BAIx0BJe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-C_mdsuRc.mjs → acorex-modules-platform-management-menu-list.component-BxGLun0f.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-C_mdsuRc.mjs.map → acorex-modules-platform-management-menu-list.component-BxGLun0f.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-product-catalog-product.entity-CuTXUcc1.mjs → acorex-modules-product-catalog-product.entity-BXDh4Wlu.mjs} +10 -2
- package/fesm2022/acorex-modules-product-catalog-product.entity-BXDh4Wlu.mjs.map +1 -0
- package/fesm2022/acorex-modules-product-catalog.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-BUp5SQ7b.mjs → acorex-modules-task-management-task-board.page-Cgxdk78j.mjs} +3 -3
- package/fesm2022/acorex-modules-task-management-task-board.page-Cgxdk78j.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/form-template-management/index.d.ts +2 -12
- package/locale-management/index.d.ts +3 -23
- package/package.json +2 -2
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-5peOXPDz.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-BDRkvtin.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-wtCw3l5I.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-Dg9sg98-.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-C6TCAUm4.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-DmohsIxt.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-link-dialog.component-Civ7UZb8.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-dialog.component-BwUZShJg.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-BMiCmb1k.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product.entity-CuTXUcc1.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-BUp5SQ7b.mjs.map +0 -1
|
@@ -1493,7 +1493,7 @@ class AXMMenuProvider {
|
|
|
1493
1493
|
}
|
|
1494
1494
|
async provide(context) {
|
|
1495
1495
|
const module = RootConfig.module;
|
|
1496
|
-
context.find(AXPCommonMenuKeys.
|
|
1496
|
+
context.find(AXPCommonMenuKeys.Configuration).addItems([
|
|
1497
1497
|
{
|
|
1498
1498
|
name: AXPDataManagementMenuKeys.Root,
|
|
1499
1499
|
text: '@data-management:module.menus.root.title',
|
|
@@ -1589,6 +1589,367 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1589
1589
|
type: Injectable
|
|
1590
1590
|
}] });
|
|
1591
1591
|
|
|
1592
|
+
/**
|
|
1593
|
+
* Provides common choice-option datasources (yes/no, rating scale, agreement, frequency, satisfaction, priority)
|
|
1594
|
+
* for use across forms, questionnaires, surveys, and other modules.
|
|
1595
|
+
*/
|
|
1596
|
+
class AXMChoiceOptionsDataSourceDefinition {
|
|
1597
|
+
constructor() {
|
|
1598
|
+
//#region ---- Yes/No Options ----
|
|
1599
|
+
this.yesNoOptions = {
|
|
1600
|
+
name: 'yes-no-options',
|
|
1601
|
+
title: '@questionnaire:datasources.yes-no-options.title',
|
|
1602
|
+
columns: [
|
|
1603
|
+
{
|
|
1604
|
+
name: 'value',
|
|
1605
|
+
title: '@questionnaire:datasources.yes-no-options.columns.value.title',
|
|
1606
|
+
type: AXPWidgetsCatalog.text,
|
|
1607
|
+
datatype: 'string',
|
|
1608
|
+
},
|
|
1609
|
+
{
|
|
1610
|
+
name: 'title',
|
|
1611
|
+
title: '@questionnaire:datasources.yes-no-options.columns.title.title',
|
|
1612
|
+
type: AXPWidgetsCatalog.text,
|
|
1613
|
+
datatype: 'string',
|
|
1614
|
+
},
|
|
1615
|
+
],
|
|
1616
|
+
filters: [],
|
|
1617
|
+
textField: { name: 'title', title: '@questionnaire:datasources.yes-no-options.columns.title.title' },
|
|
1618
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.yes-no-options.columns.value.title' },
|
|
1619
|
+
samples: [
|
|
1620
|
+
{ value: 'yes', title: '@questionnaire:datasources.yes-no-options.samples.yes' },
|
|
1621
|
+
{ value: 'no', title: '@questionnaire:datasources.yes-no-options.samples.no' },
|
|
1622
|
+
],
|
|
1623
|
+
source: () => {
|
|
1624
|
+
return new AXDataSource({
|
|
1625
|
+
pageSize: 10,
|
|
1626
|
+
key: 'value',
|
|
1627
|
+
load: async () => {
|
|
1628
|
+
return {
|
|
1629
|
+
items: [
|
|
1630
|
+
{ value: 'yes', title: '@questionnaire:datasources.yes-no-options.samples.yes' },
|
|
1631
|
+
{ value: 'no', title: '@questionnaire:datasources.yes-no-options.samples.no' },
|
|
1632
|
+
],
|
|
1633
|
+
total: 2,
|
|
1634
|
+
};
|
|
1635
|
+
},
|
|
1636
|
+
byKey: async (key) => {
|
|
1637
|
+
const items = [
|
|
1638
|
+
{ value: 'yes', title: '@questionnaire:datasources.yes-no-options.samples.yes' },
|
|
1639
|
+
{ value: 'no', title: '@questionnaire:datasources.yes-no-options.samples.no' },
|
|
1640
|
+
];
|
|
1641
|
+
return items.find(item => item.value === key);
|
|
1642
|
+
},
|
|
1643
|
+
});
|
|
1644
|
+
},
|
|
1645
|
+
};
|
|
1646
|
+
//#endregion
|
|
1647
|
+
//#region ---- Rating Scale Options ----
|
|
1648
|
+
this.ratingScaleOptions = {
|
|
1649
|
+
name: 'rating-scale-options',
|
|
1650
|
+
title: '@questionnaire:datasources.rating-scale-options.title',
|
|
1651
|
+
columns: [
|
|
1652
|
+
{
|
|
1653
|
+
name: 'value',
|
|
1654
|
+
title: '@questionnaire:datasources.rating-scale-options.columns.value.title',
|
|
1655
|
+
type: AXPWidgetsCatalog.text,
|
|
1656
|
+
datatype: 'number',
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
name: 'title',
|
|
1660
|
+
title: '@questionnaire:datasources.rating-scale-options.columns.title.title',
|
|
1661
|
+
type: AXPWidgetsCatalog.text,
|
|
1662
|
+
datatype: 'string',
|
|
1663
|
+
},
|
|
1664
|
+
{
|
|
1665
|
+
name: 'description',
|
|
1666
|
+
title: '@questionnaire:datasources.rating-scale-options.columns.description.title',
|
|
1667
|
+
type: AXPWidgetsCatalog.text,
|
|
1668
|
+
datatype: 'string',
|
|
1669
|
+
},
|
|
1670
|
+
],
|
|
1671
|
+
filters: [],
|
|
1672
|
+
textField: { name: 'title', title: '@questionnaire:datasources.rating-scale-options.columns.title.title' },
|
|
1673
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.rating-scale-options.columns.value.title' },
|
|
1674
|
+
samples: [
|
|
1675
|
+
{ value: 1, title: '@questionnaire:datasources.rating-scale-options.samples.1', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.1' },
|
|
1676
|
+
{ value: 2, title: '@questionnaire:datasources.rating-scale-options.samples.2', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.2' },
|
|
1677
|
+
{ value: 3, title: '@questionnaire:datasources.rating-scale-options.samples.3', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.3' },
|
|
1678
|
+
{ value: 4, title: '@questionnaire:datasources.rating-scale-options.samples.4', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.4' },
|
|
1679
|
+
{ value: 5, title: '@questionnaire:datasources.rating-scale-options.samples.5', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.5' },
|
|
1680
|
+
],
|
|
1681
|
+
source: () => {
|
|
1682
|
+
return new AXDataSource({
|
|
1683
|
+
pageSize: 10,
|
|
1684
|
+
key: 'value',
|
|
1685
|
+
load: async () => {
|
|
1686
|
+
return {
|
|
1687
|
+
items: [
|
|
1688
|
+
{ value: 1, title: '@questionnaire:datasources.rating-scale-options.samples.1', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.1' },
|
|
1689
|
+
{ value: 2, title: '@questionnaire:datasources.rating-scale-options.samples.2', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.2' },
|
|
1690
|
+
{ value: 3, title: '@questionnaire:datasources.rating-scale-options.samples.3', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.3' },
|
|
1691
|
+
{ value: 4, title: '@questionnaire:datasources.rating-scale-options.samples.4', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.4' },
|
|
1692
|
+
{ value: 5, title: '@questionnaire:datasources.rating-scale-options.samples.5', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.5' },
|
|
1693
|
+
],
|
|
1694
|
+
total: 5,
|
|
1695
|
+
};
|
|
1696
|
+
},
|
|
1697
|
+
byKey: async (key) => {
|
|
1698
|
+
const items = [
|
|
1699
|
+
{ value: 1, title: '@questionnaire:datasources.rating-scale-options.samples.1', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.1' },
|
|
1700
|
+
{ value: 2, title: '@questionnaire:datasources.rating-scale-options.samples.2', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.2' },
|
|
1701
|
+
{ value: 3, title: '@questionnaire:datasources.rating-scale-options.samples.3', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.3' },
|
|
1702
|
+
{ value: 4, title: '@questionnaire:datasources.rating-scale-options.samples.4', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.4' },
|
|
1703
|
+
{ value: 5, title: '@questionnaire:datasources.rating-scale-options.samples.5', description: '@questionnaire:datasources.rating-scale-options.samples.descriptions.5' },
|
|
1704
|
+
];
|
|
1705
|
+
return items.find(item => item.value === key);
|
|
1706
|
+
},
|
|
1707
|
+
});
|
|
1708
|
+
},
|
|
1709
|
+
};
|
|
1710
|
+
//#endregion
|
|
1711
|
+
//#region ---- Agreement Scale Options ----
|
|
1712
|
+
this.agreementScaleOptions = {
|
|
1713
|
+
name: 'agreement-scale-options',
|
|
1714
|
+
title: '@questionnaire:datasources.agreement-scale-options.title',
|
|
1715
|
+
columns: [
|
|
1716
|
+
{
|
|
1717
|
+
name: 'value',
|
|
1718
|
+
title: '@questionnaire:datasources.agreement-scale-options.columns.value.title',
|
|
1719
|
+
type: AXPWidgetsCatalog.text,
|
|
1720
|
+
datatype: 'string',
|
|
1721
|
+
},
|
|
1722
|
+
{
|
|
1723
|
+
name: 'title',
|
|
1724
|
+
title: '@questionnaire:datasources.agreement-scale-options.columns.title.title',
|
|
1725
|
+
type: AXPWidgetsCatalog.text,
|
|
1726
|
+
datatype: 'string',
|
|
1727
|
+
},
|
|
1728
|
+
],
|
|
1729
|
+
filters: [],
|
|
1730
|
+
textField: { name: 'title', title: '@questionnaire:datasources.agreement-scale-options.columns.title.title' },
|
|
1731
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.agreement-scale-options.columns.value.title' },
|
|
1732
|
+
samples: [
|
|
1733
|
+
{ value: 'strongly-disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-disagree' },
|
|
1734
|
+
{ value: 'disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.disagree' },
|
|
1735
|
+
{ value: 'neutral', title: '@questionnaire:datasources.agreement-scale-options.samples.neutral' },
|
|
1736
|
+
{ value: 'agree', title: '@questionnaire:datasources.agreement-scale-options.samples.agree' },
|
|
1737
|
+
{ value: 'strongly-agree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-agree' },
|
|
1738
|
+
],
|
|
1739
|
+
source: () => {
|
|
1740
|
+
return new AXDataSource({
|
|
1741
|
+
pageSize: 10,
|
|
1742
|
+
key: 'value',
|
|
1743
|
+
load: async () => {
|
|
1744
|
+
return {
|
|
1745
|
+
items: [
|
|
1746
|
+
{ value: 'strongly-disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-disagree' },
|
|
1747
|
+
{ value: 'disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.disagree' },
|
|
1748
|
+
{ value: 'neutral', title: '@questionnaire:datasources.agreement-scale-options.samples.neutral' },
|
|
1749
|
+
{ value: 'agree', title: '@questionnaire:datasources.agreement-scale-options.samples.agree' },
|
|
1750
|
+
{ value: 'strongly-agree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-agree' },
|
|
1751
|
+
],
|
|
1752
|
+
total: 5,
|
|
1753
|
+
};
|
|
1754
|
+
},
|
|
1755
|
+
byKey: async (key) => {
|
|
1756
|
+
const items = [
|
|
1757
|
+
{ value: 'strongly-disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-disagree' },
|
|
1758
|
+
{ value: 'disagree', title: '@questionnaire:datasources.agreement-scale-options.samples.disagree' },
|
|
1759
|
+
{ value: 'neutral', title: '@questionnaire:datasources.agreement-scale-options.samples.neutral' },
|
|
1760
|
+
{ value: 'agree', title: '@questionnaire:datasources.agreement-scale-options.samples.agree' },
|
|
1761
|
+
{ value: 'strongly-agree', title: '@questionnaire:datasources.agreement-scale-options.samples.strongly-agree' },
|
|
1762
|
+
];
|
|
1763
|
+
return items.find(item => item.value === key);
|
|
1764
|
+
},
|
|
1765
|
+
});
|
|
1766
|
+
},
|
|
1767
|
+
};
|
|
1768
|
+
//#endregion
|
|
1769
|
+
//#region ---- Frequency Options ----
|
|
1770
|
+
this.frequencyOptions = {
|
|
1771
|
+
name: 'frequency-options',
|
|
1772
|
+
title: '@questionnaire:datasources.frequency-options.title',
|
|
1773
|
+
columns: [
|
|
1774
|
+
{
|
|
1775
|
+
name: 'value',
|
|
1776
|
+
title: '@questionnaire:datasources.frequency-options.columns.value.title',
|
|
1777
|
+
type: AXPWidgetsCatalog.text,
|
|
1778
|
+
datatype: 'string',
|
|
1779
|
+
},
|
|
1780
|
+
{
|
|
1781
|
+
name: 'title',
|
|
1782
|
+
title: '@questionnaire:datasources.frequency-options.columns.title.title',
|
|
1783
|
+
type: AXPWidgetsCatalog.text,
|
|
1784
|
+
datatype: 'string',
|
|
1785
|
+
},
|
|
1786
|
+
],
|
|
1787
|
+
filters: [],
|
|
1788
|
+
textField: { name: 'title', title: '@questionnaire:datasources.frequency-options.columns.title.title' },
|
|
1789
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.frequency-options.columns.value.title' },
|
|
1790
|
+
samples: [
|
|
1791
|
+
{ value: 'never', title: '@questionnaire:datasources.frequency-options.samples.never' },
|
|
1792
|
+
{ value: 'rarely', title: '@questionnaire:datasources.frequency-options.samples.rarely' },
|
|
1793
|
+
{ value: 'sometimes', title: '@questionnaire:datasources.frequency-options.samples.sometimes' },
|
|
1794
|
+
{ value: 'often', title: '@questionnaire:datasources.frequency-options.samples.often' },
|
|
1795
|
+
{ value: 'always', title: '@questionnaire:datasources.frequency-options.samples.always' },
|
|
1796
|
+
],
|
|
1797
|
+
source: () => {
|
|
1798
|
+
return new AXDataSource({
|
|
1799
|
+
pageSize: 10,
|
|
1800
|
+
key: 'value',
|
|
1801
|
+
load: async () => {
|
|
1802
|
+
return {
|
|
1803
|
+
items: [
|
|
1804
|
+
{ value: 'never', title: '@questionnaire:datasources.frequency-options.samples.never' },
|
|
1805
|
+
{ value: 'rarely', title: '@questionnaire:datasources.frequency-options.samples.rarely' },
|
|
1806
|
+
{ value: 'sometimes', title: '@questionnaire:datasources.frequency-options.samples.sometimes' },
|
|
1807
|
+
{ value: 'often', title: '@questionnaire:datasources.frequency-options.samples.often' },
|
|
1808
|
+
{ value: 'always', title: '@questionnaire:datasources.frequency-options.samples.always' },
|
|
1809
|
+
],
|
|
1810
|
+
total: 5,
|
|
1811
|
+
};
|
|
1812
|
+
},
|
|
1813
|
+
byKey: async (key) => {
|
|
1814
|
+
const items = [
|
|
1815
|
+
{ value: 'never', title: '@questionnaire:datasources.frequency-options.samples.never' },
|
|
1816
|
+
{ value: 'rarely', title: '@questionnaire:datasources.frequency-options.samples.rarely' },
|
|
1817
|
+
{ value: 'sometimes', title: '@questionnaire:datasources.frequency-options.samples.sometimes' },
|
|
1818
|
+
{ value: 'often', title: '@questionnaire:datasources.frequency-options.samples.often' },
|
|
1819
|
+
{ value: 'always', title: '@questionnaire:datasources.frequency-options.samples.always' },
|
|
1820
|
+
];
|
|
1821
|
+
return items.find(item => item.value === key);
|
|
1822
|
+
},
|
|
1823
|
+
});
|
|
1824
|
+
},
|
|
1825
|
+
};
|
|
1826
|
+
//#endregion
|
|
1827
|
+
//#region ---- Satisfaction Options ----
|
|
1828
|
+
this.satisfactionOptions = {
|
|
1829
|
+
name: 'satisfaction-options',
|
|
1830
|
+
title: '@questionnaire:datasources.satisfaction-options.title',
|
|
1831
|
+
columns: [
|
|
1832
|
+
{
|
|
1833
|
+
name: 'value',
|
|
1834
|
+
title: '@questionnaire:datasources.satisfaction-options.columns.value.title',
|
|
1835
|
+
type: AXPWidgetsCatalog.text,
|
|
1836
|
+
datatype: 'string',
|
|
1837
|
+
},
|
|
1838
|
+
{
|
|
1839
|
+
name: 'title',
|
|
1840
|
+
title: '@questionnaire:datasources.satisfaction-options.columns.title.title',
|
|
1841
|
+
type: AXPWidgetsCatalog.text,
|
|
1842
|
+
datatype: 'string',
|
|
1843
|
+
},
|
|
1844
|
+
],
|
|
1845
|
+
filters: [],
|
|
1846
|
+
textField: { name: 'title', title: '@questionnaire:datasources.satisfaction-options.columns.title.title' },
|
|
1847
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.satisfaction-options.columns.value.title' },
|
|
1848
|
+
samples: [
|
|
1849
|
+
{ value: 'very-dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-dissatisfied' },
|
|
1850
|
+
{ value: 'dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.dissatisfied' },
|
|
1851
|
+
{ value: 'neutral', title: '@questionnaire:datasources.satisfaction-options.samples.neutral' },
|
|
1852
|
+
{ value: 'satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.satisfied' },
|
|
1853
|
+
{ value: 'very-satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-satisfied' },
|
|
1854
|
+
],
|
|
1855
|
+
source: () => {
|
|
1856
|
+
return new AXDataSource({
|
|
1857
|
+
pageSize: 10,
|
|
1858
|
+
key: 'value',
|
|
1859
|
+
load: async () => {
|
|
1860
|
+
return {
|
|
1861
|
+
items: [
|
|
1862
|
+
{ value: 'very-dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-dissatisfied' },
|
|
1863
|
+
{ value: 'dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.dissatisfied' },
|
|
1864
|
+
{ value: 'neutral', title: '@questionnaire:datasources.satisfaction-options.samples.neutral' },
|
|
1865
|
+
{ value: 'satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.satisfied' },
|
|
1866
|
+
{ value: 'very-satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-satisfied' },
|
|
1867
|
+
],
|
|
1868
|
+
total: 5,
|
|
1869
|
+
};
|
|
1870
|
+
},
|
|
1871
|
+
byKey: async (key) => {
|
|
1872
|
+
const items = [
|
|
1873
|
+
{ value: 'very-dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-dissatisfied' },
|
|
1874
|
+
{ value: 'dissatisfied', title: '@questionnaire:datasources.satisfaction-options.samples.dissatisfied' },
|
|
1875
|
+
{ value: 'neutral', title: '@questionnaire:datasources.satisfaction-options.samples.neutral' },
|
|
1876
|
+
{ value: 'satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.satisfied' },
|
|
1877
|
+
{ value: 'very-satisfied', title: '@questionnaire:datasources.satisfaction-options.samples.very-satisfied' },
|
|
1878
|
+
];
|
|
1879
|
+
return items.find(item => item.value === key);
|
|
1880
|
+
},
|
|
1881
|
+
});
|
|
1882
|
+
},
|
|
1883
|
+
};
|
|
1884
|
+
//#endregion
|
|
1885
|
+
//#region ---- Priority Options ----
|
|
1886
|
+
this.priorityOptions = {
|
|
1887
|
+
name: 'priority-options',
|
|
1888
|
+
title: '@questionnaire:datasources.priority-options.title',
|
|
1889
|
+
columns: [
|
|
1890
|
+
{
|
|
1891
|
+
name: 'value',
|
|
1892
|
+
title: '@questionnaire:datasources.priority-options.columns.value.title',
|
|
1893
|
+
type: AXPWidgetsCatalog.text,
|
|
1894
|
+
datatype: 'string',
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
name: 'title',
|
|
1898
|
+
title: '@questionnaire:datasources.priority-options.columns.title.title',
|
|
1899
|
+
type: AXPWidgetsCatalog.text,
|
|
1900
|
+
datatype: 'string',
|
|
1901
|
+
},
|
|
1902
|
+
],
|
|
1903
|
+
filters: [],
|
|
1904
|
+
textField: { name: 'title', title: '@questionnaire:datasources.priority-options.columns.title.title' },
|
|
1905
|
+
valueField: { name: 'value', title: '@questionnaire:datasources.priority-options.columns.value.title' },
|
|
1906
|
+
samples: [
|
|
1907
|
+
{ value: 'low', title: '@questionnaire:datasources.priority-options.samples.low' },
|
|
1908
|
+
{ value: 'medium', title: '@questionnaire:datasources.priority-options.samples.medium' },
|
|
1909
|
+
{ value: 'high', title: '@questionnaire:datasources.priority-options.samples.high' },
|
|
1910
|
+
{ value: 'critical', title: '@questionnaire:datasources.priority-options.samples.critical' },
|
|
1911
|
+
],
|
|
1912
|
+
source: () => {
|
|
1913
|
+
return new AXDataSource({
|
|
1914
|
+
pageSize: 10,
|
|
1915
|
+
key: 'value',
|
|
1916
|
+
load: async () => {
|
|
1917
|
+
return {
|
|
1918
|
+
items: [
|
|
1919
|
+
{ value: 'low', title: '@questionnaire:datasources.priority-options.samples.low' },
|
|
1920
|
+
{ value: 'medium', title: '@questionnaire:datasources.priority-options.samples.medium' },
|
|
1921
|
+
{ value: 'high', title: '@questionnaire:datasources.priority-options.samples.high' },
|
|
1922
|
+
{ value: 'critical', title: '@questionnaire:datasources.priority-options.samples.critical' },
|
|
1923
|
+
],
|
|
1924
|
+
total: 4,
|
|
1925
|
+
};
|
|
1926
|
+
},
|
|
1927
|
+
byKey: async (key) => {
|
|
1928
|
+
const items = [
|
|
1929
|
+
{ value: 'low', title: '@questionnaire:datasources.priority-options.samples.low' },
|
|
1930
|
+
{ value: 'medium', title: '@questionnaire:datasources.priority-options.samples.medium' },
|
|
1931
|
+
{ value: 'high', title: '@questionnaire:datasources.priority-options.samples.high' },
|
|
1932
|
+
{ value: 'critical', title: '@questionnaire:datasources.priority-options.samples.critical' },
|
|
1933
|
+
];
|
|
1934
|
+
return items.find(item => item.value === key);
|
|
1935
|
+
},
|
|
1936
|
+
});
|
|
1937
|
+
},
|
|
1938
|
+
};
|
|
1939
|
+
}
|
|
1940
|
+
//#endregion
|
|
1941
|
+
async items() {
|
|
1942
|
+
return [
|
|
1943
|
+
this.yesNoOptions,
|
|
1944
|
+
this.ratingScaleOptions,
|
|
1945
|
+
this.agreementScaleOptions,
|
|
1946
|
+
this.frequencyOptions,
|
|
1947
|
+
this.satisfactionOptions,
|
|
1948
|
+
this.priorityOptions,
|
|
1949
|
+
];
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1592
1953
|
class AXMDataSourceListDataSourceDefinition {
|
|
1593
1954
|
get parent() {
|
|
1594
1955
|
return this['__parent__'];
|
|
@@ -3486,7 +3847,7 @@ class AXMColumnFilterSelectorWidgetFilterComponent extends AXPValueWidgetCompone
|
|
|
3486
3847
|
>
|
|
3487
3848
|
<ax-clear-button></ax-clear-button>
|
|
3488
3849
|
</ax-text-box>
|
|
3489
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "
|
|
3850
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3490
3851
|
}
|
|
3491
3852
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMColumnFilterSelectorWidgetFilterComponent, decorators: [{
|
|
3492
3853
|
type: Component,
|
|
@@ -6127,7 +6488,7 @@ class AXPAggregateBuilderComponent {
|
|
|
6127
6488
|
});
|
|
6128
6489
|
}
|
|
6129
6490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPAggregateBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXPAggregateBuilderComponent, isStandalone: true, selector: "axp-aggregate-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, databaseType: { classPropertyName: "databaseType", publicName: "databaseType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-aggregate-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.title' | translate | async) || 'Aggregate Functions' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"(showAddForm() ? ('@data-management:metadata-definitions.components.query-builder.actions.cancel.title' | translate | async) : ('@data-management:metadata-definitions.components.query-builder.actions.add-aggregate.title' | translate | async)) || (showAddForm() ? 'Cancel' : 'Add Aggregate')\"\n (onClick)=\"toggleAddForm()\">\n <ax-prefix>\n <ax-icon [icon]=\"showAddForm() ? 'fa-light fa-times' : 'fa-light fa-plus'\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Filters -->\n <div class=\"__filters\">\n <ax-select-box\n class=\"__category-filter\"\n [dataSource]=\"categoriesDataSource()\"\n [ngModel]=\"selectedCategory()\"\n (ngModelChange)=\"selectedCategory.set($event)\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.category-placeholder' | translate | async) || 'Filter by category'\">\n </ax-select-box>\n <ax-search-box\n class=\"__search-filter\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.search-placeholder' | translate | async) || 'Search functions...'\"\n [value]=\"searchText()\"\n (valueChange)=\"searchText.set($event)\">\n </ax-search-box>\n </div>\n\n <!-- Add Form -->\n @if (showAddForm()) {\n <div class=\"__add-form\">\n <div class=\"__form-row\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"newAggregate().function\"\n (ngModelChange)=\"onFunctionChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (newAggregate().function && functionRequiresField(newAggregate().function!)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"newAggregate().field\"\n (ngModelChange)=\"onFieldChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n <ax-text-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().alias\"\n (ngModelChange)=\"onAliasChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.alias-placeholder' | translate | async) || 'Alias (optional)'\"\n [type]=\"'text'\">\n </ax-text-box>\n @if (newAggregate().function && functionSupportsDistinct(newAggregate().function!)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().distinct\"\n (ngModelChange)=\"onDistinctChange($event)\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!)) {\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested'\"\n (onClick)=\"addNestedToNewAggregate()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add.title' | translate | async) || 'Add'\"\n (onClick)=\"addAggregate()\">\n </ax-button>\n </div>\n \n <!-- Nested Aggregates for New Aggregate -->\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!) && newAggregate().nestedAggregates && newAggregate().nestedAggregates!.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of newAggregate().nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { function: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { field: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedFromNewAggregate(ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Aggregate Operations List -->\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.empty-state' | translate | async) || 'No aggregate functions defined. Click \\'Add Aggregate\\' to add aggregation.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__aggregate-operations\">\n @for (agg of value(); track $index; let i = $index) {\n <div class=\"__aggregate-operation\">\n <div class=\"__operation-info\">\n <ax-label class=\"__function-name\">\n {{ getFunctionDefinition(agg.function)?.title || agg.function }}(\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n {{ getFunctionDefinition(nested.function)?.title || nested.function }}({{ nested.distinct ? 'DISTINCT ' : '' }}{{ nested.field || '*' }})\n @if (ni < agg.nestedAggregates!.length - 1) {\n <span>, </span>\n }\n }\n } @else {\n {{ agg.distinct ? 'DISTINCT ' : '' }}{{ agg.field || '*' }}\n }\n )\n </ax-label>\n @if (agg.alias) {\n <ax-label class=\"__alias\">AS {{ agg.alias }}</ax-label>\n }\n </div>\n <div class=\"__operation-actions\">\n @if (functionSupportsNested(agg.function) && canAddNestedAggregate(i, getNestingDepth(agg))) {\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'primary'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested Aggregate'\"\n (onClick)=\"addNestedAggregate(i)\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeAggregate(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n \n <!-- Nested Aggregates Editor -->\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { function: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { field: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedAggregate(i, ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: [".axp-aggregate-builder{display:flex;flex-direction:column;gap:1rem}.axp-aggregate-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-aggregate-builder .__section-header .__section-title{margin:0;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-aggregate-builder .__section-header .__section-actions,.axp-aggregate-builder .__filters{display:flex;align-items:center;gap:.5rem}.axp-aggregate-builder .__filters .__category-filter,.axp-aggregate-builder .__filters .__search-filter{flex:1 1 0%;min-width:200px}.axp-aggregate-builder .__add-form{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:1rem}.axp-aggregate-builder .__add-form .__form-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axp-aggregate-builder .__add-form .__form-row .__form-field{flex:1 1 0%;min-width:150px}.axp-aggregate-builder .__section-body{display:flex;flex-direction:column;gap:.5rem}.axp-aggregate-builder .__section-body .__empty-state{padding-top:2rem;padding-bottom:2rem;text-align:center}.axp-aggregate-builder .__section-body .__empty-state .__empty-state-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations{display:flex;flex-direction:column;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:.75rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info{display:flex;flex:1 1 0%;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__function-name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__alias{font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-actions{display:flex;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates{margin-top:.5rem;margin-left:1.5rem;display:flex;flex-direction:column;gap:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity, 1));padding-left:1rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1));padding:.75rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__form-field{flex:1 1 0%;min-width:150px}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i4$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i3$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXPAggregateBuilderComponent, isStandalone: true, selector: "axp-aggregate-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, databaseType: { classPropertyName: "databaseType", publicName: "databaseType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-aggregate-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.title' | translate | async) || 'Aggregate Functions' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"(showAddForm() ? ('@data-management:metadata-definitions.components.query-builder.actions.cancel.title' | translate | async) : ('@data-management:metadata-definitions.components.query-builder.actions.add-aggregate.title' | translate | async)) || (showAddForm() ? 'Cancel' : 'Add Aggregate')\"\n (onClick)=\"toggleAddForm()\">\n <ax-prefix>\n <ax-icon [icon]=\"showAddForm() ? 'fa-light fa-times' : 'fa-light fa-plus'\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Filters -->\n <div class=\"__filters\">\n <ax-select-box\n class=\"__category-filter\"\n [dataSource]=\"categoriesDataSource()\"\n [ngModel]=\"selectedCategory()\"\n (ngModelChange)=\"selectedCategory.set($event)\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.category-placeholder' | translate | async) || 'Filter by category'\">\n </ax-select-box>\n <ax-search-box\n class=\"__search-filter\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.search-placeholder' | translate | async) || 'Search functions...'\"\n [value]=\"searchText()\"\n (valueChange)=\"searchText.set($event)\">\n </ax-search-box>\n </div>\n\n <!-- Add Form -->\n @if (showAddForm()) {\n <div class=\"__add-form\">\n <div class=\"__form-row\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"newAggregate().function\"\n (ngModelChange)=\"onFunctionChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (newAggregate().function && functionRequiresField(newAggregate().function!)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"newAggregate().field\"\n (ngModelChange)=\"onFieldChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n <ax-text-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().alias\"\n (ngModelChange)=\"onAliasChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.alias-placeholder' | translate | async) || 'Alias (optional)'\"\n [type]=\"'text'\">\n </ax-text-box>\n @if (newAggregate().function && functionSupportsDistinct(newAggregate().function!)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().distinct\"\n (ngModelChange)=\"onDistinctChange($event)\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!)) {\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested'\"\n (onClick)=\"addNestedToNewAggregate()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add.title' | translate | async) || 'Add'\"\n (onClick)=\"addAggregate()\">\n </ax-button>\n </div>\n \n <!-- Nested Aggregates for New Aggregate -->\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!) && newAggregate().nestedAggregates && newAggregate().nestedAggregates!.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of newAggregate().nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { function: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { field: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedFromNewAggregate(ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Aggregate Operations List -->\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.empty-state' | translate | async) || 'No aggregate functions defined. Click \\'Add Aggregate\\' to add aggregation.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__aggregate-operations\">\n @for (agg of value(); track $index; let i = $index) {\n <div class=\"__aggregate-operation\">\n <div class=\"__operation-info\">\n <ax-label class=\"__function-name\">\n {{ getFunctionDefinition(agg.function)?.title || agg.function }}(\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n {{ getFunctionDefinition(nested.function)?.title || nested.function }}({{ nested.distinct ? 'DISTINCT ' : '' }}{{ nested.field || '*' }})\n @if (ni < agg.nestedAggregates!.length - 1) {\n <span>, </span>\n }\n }\n } @else {\n {{ agg.distinct ? 'DISTINCT ' : '' }}{{ agg.field || '*' }}\n }\n )\n </ax-label>\n @if (agg.alias) {\n <ax-label class=\"__alias\">AS {{ agg.alias }}</ax-label>\n }\n </div>\n <div class=\"__operation-actions\">\n @if (functionSupportsNested(agg.function) && canAddNestedAggregate(i, getNestingDepth(agg))) {\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'primary'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested Aggregate'\"\n (onClick)=\"addNestedAggregate(i)\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeAggregate(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n \n <!-- Nested Aggregates Editor -->\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { function: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-select-box\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { field: $event })\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-select-box>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedAggregate(i, ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: [".axp-aggregate-builder{display:flex;flex-direction:column;gap:1rem}.axp-aggregate-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-aggregate-builder .__section-header .__section-title{margin:0;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-aggregate-builder .__section-header .__section-actions,.axp-aggregate-builder .__filters{display:flex;align-items:center;gap:.5rem}.axp-aggregate-builder .__filters .__category-filter,.axp-aggregate-builder .__filters .__search-filter{flex:1 1 0%;min-width:200px}.axp-aggregate-builder .__add-form{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:1rem}.axp-aggregate-builder .__add-form .__form-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axp-aggregate-builder .__add-form .__form-row .__form-field{flex:1 1 0%;min-width:150px}.axp-aggregate-builder .__section-body{display:flex;flex-direction:column;gap:.5rem}.axp-aggregate-builder .__section-body .__empty-state{padding-top:2rem;padding-bottom:2rem;text-align:center}.axp-aggregate-builder .__section-body .__empty-state .__empty-state-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations{display:flex;flex-direction:column;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation{display:flex;align-items:center;justify-content:space-between;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:.75rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info{display:flex;flex:1 1 0%;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__function-name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__alias{font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-actions{display:flex;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates{margin-top:.5rem;margin-left:1.5rem;display:flex;flex-direction:column;gap:.5rem;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity, 1));padding-left:1rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1));padding:.75rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__form-field{flex:1 1 0%;min-width:150px}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i4$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i3$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6131
6492
|
}
|
|
6132
6493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPAggregateBuilderComponent, decorators: [{
|
|
6133
6494
|
type: Component,
|
|
@@ -8824,19 +9185,23 @@ class AXPMetaDataFormWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
8824
9185
|
const defaultValue = metadata.defaultValue ?? metadata.configuration?.defaultValue;
|
|
8825
9186
|
// Handle description: support both direct property and from configuration
|
|
8826
9187
|
const description = metadata.description ?? metadata.configuration?.description;
|
|
9188
|
+
const widget = {
|
|
9189
|
+
type: interfaceConfig.type || 'text-editor',
|
|
9190
|
+
path: metadata.name || 'unnamed',
|
|
9191
|
+
options: {
|
|
9192
|
+
...interfaceConfig.options,
|
|
9193
|
+
defaultValue: defaultValue,
|
|
9194
|
+
validations: this.parseValidations(metadata.interface),
|
|
9195
|
+
},
|
|
9196
|
+
};
|
|
9197
|
+
if (interfaceConfig.triggers?.length) {
|
|
9198
|
+
widget.triggers = interfaceConfig.triggers;
|
|
9199
|
+
}
|
|
8827
9200
|
return {
|
|
8828
9201
|
path: metadata.name || 'unnamed',
|
|
8829
9202
|
title: metadata.title || 'Untitled Field',
|
|
8830
9203
|
description: description,
|
|
8831
|
-
widget
|
|
8832
|
-
type: interfaceConfig.type || 'text-editor',
|
|
8833
|
-
path: metadata.name || 'unnamed',
|
|
8834
|
-
options: {
|
|
8835
|
-
...interfaceConfig.options,
|
|
8836
|
-
defaultValue: defaultValue,
|
|
8837
|
-
validations: this.parseValidations(metadata.interface),
|
|
8838
|
-
},
|
|
8839
|
-
},
|
|
9204
|
+
widget,
|
|
8840
9205
|
};
|
|
8841
9206
|
}
|
|
8842
9207
|
/**
|
|
@@ -9715,6 +10080,11 @@ class AXMDataManagementModule {
|
|
|
9715
10080
|
useClass: AXMDataSourceListDataSourceDefinition,
|
|
9716
10081
|
multi: true,
|
|
9717
10082
|
},
|
|
10083
|
+
{
|
|
10084
|
+
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
10085
|
+
useClass: AXMChoiceOptionsDataSourceDefinition,
|
|
10086
|
+
multi: true,
|
|
10087
|
+
},
|
|
9718
10088
|
], imports: [AXPWidgetCoreModule.forChild({
|
|
9719
10089
|
widgets: [AXPQueryBuilderWidget, AXMColumnFilterSelectorWidget],
|
|
9720
10090
|
}),
|
|
@@ -9808,6 +10178,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9808
10178
|
useClass: AXMDataSourceListDataSourceDefinition,
|
|
9809
10179
|
multi: true,
|
|
9810
10180
|
},
|
|
10181
|
+
{
|
|
10182
|
+
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
10183
|
+
useClass: AXMChoiceOptionsDataSourceDefinition,
|
|
10184
|
+
multi: true,
|
|
10185
|
+
},
|
|
9811
10186
|
]
|
|
9812
10187
|
}]
|
|
9813
10188
|
}] });
|