@anglr/dynamic 1.0.0-beta.20231009101926 → 1.0.0-beta.20231010100212

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/es2015/material-components/src/dynamicItems/index.js +1 -0
  2. package/es2015/material-components/src/dynamicItems/index.js.map +1 -1
  3. package/es2015/material-components/src/dynamicItems/tab/index.js +2 -0
  4. package/es2015/material-components/src/dynamicItems/tab/index.js.map +1 -0
  5. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.js +62 -0
  6. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.js.map +1 -0
  7. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.model.js +11 -0
  8. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.model.js.map +1 -0
  9. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.js +24 -0
  10. package/es2015/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.js.map +1 -0
  11. package/es2015/material-components/src/dynamicItems/tab/node/tabNode.component.js +19 -0
  12. package/es2015/material-components/src/dynamicItems/tab/node/tabNode.component.js.map +1 -0
  13. package/es2015/material-components/src/dynamicItems/tab/tab.component.js +100 -0
  14. package/es2015/material-components/src/dynamicItems/tab/tab.component.js.map +1 -0
  15. package/es2015/material-components/src/dynamicItems/tab/tab.metadata.js +10 -0
  16. package/es2015/material-components/src/dynamicItems/tab/tab.metadata.js.map +1 -0
  17. package/es2015/material-components/src/dynamicItems/tab/tab.options.js +2 -0
  18. package/es2015/material-components/src/dynamicItems/tab/tab.options.js.map +1 -0
  19. package/es2015/material-components/src/dynamicItems/tab/type.js +6 -0
  20. package/es2015/material-components/src/dynamicItems/tab/type.js.map +1 -0
  21. package/es2015/material-components/src/dynamicItems/tabGroup/index.js +2 -0
  22. package/es2015/material-components/src/dynamicItems/tabGroup/index.js.map +1 -0
  23. package/es2015/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.js +46 -0
  24. package/es2015/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.js.map +1 -0
  25. package/es2015/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.js +21 -0
  26. package/es2015/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.js.map +1 -0
  27. package/es2015/material-components/src/dynamicItems/tabGroup/misc/components/index.js +2 -0
  28. package/es2015/material-components/src/dynamicItems/tabGroup/misc/components/index.js.map +1 -0
  29. package/es2015/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.js +74 -0
  30. package/es2015/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.js.map +1 -0
  31. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.component.js +111 -0
  32. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.component.js.map +1 -0
  33. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.js +6 -0
  34. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.js.map +1 -0
  35. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.options.js +2 -0
  36. package/es2015/material-components/src/dynamicItems/tabGroup/tabGroup.options.js.map +1 -0
  37. package/es2015/material-components/src/dynamicItems/tabGroup/type.js +5 -0
  38. package/es2015/material-components/src/dynamicItems/tabGroup/type.js.map +1 -0
  39. package/es2015/material-components/src/types.js +1 -0
  40. package/es2015/material-components/src/types.js.map +1 -1
  41. package/es2020/material-components/src/dynamicItems/index.js +1 -0
  42. package/es2020/material-components/src/dynamicItems/index.js.map +1 -1
  43. package/es2020/material-components/src/dynamicItems/tab/index.js +2 -0
  44. package/es2020/material-components/src/dynamicItems/tab/index.js.map +1 -0
  45. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.js +60 -0
  46. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.js.map +1 -0
  47. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.model.js +11 -0
  48. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.model.js.map +1 -0
  49. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.js +24 -0
  50. package/es2020/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.js.map +1 -0
  51. package/es2020/material-components/src/dynamicItems/tab/node/tabNode.component.js +19 -0
  52. package/es2020/material-components/src/dynamicItems/tab/node/tabNode.component.js.map +1 -0
  53. package/es2020/material-components/src/dynamicItems/tab/tab.component.js +98 -0
  54. package/es2020/material-components/src/dynamicItems/tab/tab.component.js.map +1 -0
  55. package/es2020/material-components/src/dynamicItems/tab/tab.metadata.js +9 -0
  56. package/es2020/material-components/src/dynamicItems/tab/tab.metadata.js.map +1 -0
  57. package/es2020/material-components/src/dynamicItems/tab/tab.options.js +2 -0
  58. package/es2020/material-components/src/dynamicItems/tab/tab.options.js.map +1 -0
  59. package/es2020/material-components/src/dynamicItems/tab/type.js +6 -0
  60. package/es2020/material-components/src/dynamicItems/tab/type.js.map +1 -0
  61. package/es2020/material-components/src/dynamicItems/tabGroup/index.js +2 -0
  62. package/es2020/material-components/src/dynamicItems/tabGroup/index.js.map +1 -0
  63. package/es2020/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.js +46 -0
  64. package/es2020/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.js.map +1 -0
  65. package/es2020/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.js +21 -0
  66. package/es2020/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.js.map +1 -0
  67. package/es2020/material-components/src/dynamicItems/tabGroup/misc/components/index.js +2 -0
  68. package/es2020/material-components/src/dynamicItems/tabGroup/misc/components/index.js.map +1 -0
  69. package/es2020/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.js +67 -0
  70. package/es2020/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.js.map +1 -0
  71. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.component.js +108 -0
  72. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.component.js.map +1 -0
  73. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.js +5 -0
  74. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.js.map +1 -0
  75. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.options.js +2 -0
  76. package/es2020/material-components/src/dynamicItems/tabGroup/tabGroup.options.js.map +1 -0
  77. package/es2020/material-components/src/dynamicItems/tabGroup/type.js +5 -0
  78. package/es2020/material-components/src/dynamicItems/tabGroup/type.js.map +1 -0
  79. package/es2020/material-components/src/types.js +1 -0
  80. package/es2020/material-components/src/types.js.map +1 -1
  81. package/material-components/src/dynamicItems/index.d.ts +1 -0
  82. package/material-components/src/dynamicItems/index.d.ts.map +1 -1
  83. package/material-components/src/dynamicItems/tab/index.d.ts +2 -0
  84. package/material-components/src/dynamicItems/tab/index.d.ts.map +1 -0
  85. package/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.d.ts +31 -0
  86. package/material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.d.ts.map +1 -0
  87. package/material-components/src/dynamicItems/tab/metadata/tab.model.d.ts +13 -0
  88. package/material-components/src/dynamicItems/tab/metadata/tab.model.d.ts.map +1 -0
  89. package/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.d.ts +17 -0
  90. package/material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.d.ts.map +1 -0
  91. package/material-components/src/dynamicItems/tab/node/tabNode.component.d.ts +10 -0
  92. package/material-components/src/dynamicItems/tab/node/tabNode.component.d.ts.map +1 -0
  93. package/material-components/src/dynamicItems/tab/node/tabNode.component.html +12 -0
  94. package/material-components/src/dynamicItems/tab/tab.component.d.ts +47 -0
  95. package/material-components/src/dynamicItems/tab/tab.component.d.ts.map +1 -0
  96. package/material-components/src/dynamicItems/tab/tab.component.html +3 -0
  97. package/material-components/src/dynamicItems/tab/tab.metadata.d.ts +13 -0
  98. package/material-components/src/dynamicItems/tab/tab.metadata.d.ts.map +1 -0
  99. package/material-components/src/dynamicItems/tab/tab.options.d.ts +11 -0
  100. package/material-components/src/dynamicItems/tab/tab.options.d.ts.map +1 -0
  101. package/material-components/src/dynamicItems/tab/type.d.ts +6 -0
  102. package/material-components/src/dynamicItems/tab/type.d.ts.map +1 -0
  103. package/material-components/src/dynamicItems/tabGroup/index.d.ts +2 -0
  104. package/material-components/src/dynamicItems/tabGroup/index.d.ts.map +1 -0
  105. package/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.d.ts +22 -0
  106. package/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.d.ts.map +1 -0
  107. package/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.d.ts +9 -0
  108. package/material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.d.ts.map +1 -0
  109. package/material-components/src/dynamicItems/tabGroup/misc/components/index.d.ts +2 -0
  110. package/material-components/src/dynamicItems/tabGroup/misc/components/index.d.ts.map +1 -0
  111. package/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.d.ts +34 -0
  112. package/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.d.ts.map +1 -0
  113. package/material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.html +16 -0
  114. package/material-components/src/dynamicItems/tabGroup/tabGroup.component.d.ts +44 -0
  115. package/material-components/src/dynamicItems/tabGroup/tabGroup.component.d.ts.map +1 -0
  116. package/material-components/src/dynamicItems/tabGroup/tabGroup.component.html +5 -0
  117. package/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.d.ts +8 -0
  118. package/material-components/src/dynamicItems/tabGroup/tabGroup.metadata.d.ts.map +1 -0
  119. package/material-components/src/dynamicItems/tabGroup/tabGroup.options.d.ts +24 -0
  120. package/material-components/src/dynamicItems/tabGroup/tabGroup.options.d.ts.map +1 -0
  121. package/material-components/src/dynamicItems/tabGroup/type.d.ts +5 -0
  122. package/material-components/src/dynamicItems/tabGroup/type.d.ts.map +1 -0
  123. package/material-components/src/types.d.ts.map +1 -1
  124. package/package.json +1 -1
  125. package/version.bak +1 -1
@@ -7,4 +7,5 @@ export * from './select';
7
7
  export * from './textarea';
8
8
  export * from './textField';
9
9
  export * from './expansionPanel';
10
+ export * from './tabGroup';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../material-components/src/dynamicItems/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './checkbox';\nexport * from './datepicker';\nexport * from './numberField';\nexport * from './period';\nexport * from './radio';\nexport * from './select';\nexport * from './textarea';\nexport * from './textField';\nexport * from './expansionPanel';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../material-components/src/dynamicItems/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC","sourcesContent":["export * from './checkbox';\nexport * from './datepicker';\nexport * from './numberField';\nexport * from './period';\nexport * from './radio';\nexport * from './select';\nexport * from './textarea';\nexport * from './textField';\nexport * from './expansionPanel';\nexport * from './tabGroup';\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './tab.options';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tab/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC","sourcesContent":["export * from './tab.options';\n"]}
@@ -0,0 +1,62 @@
1
+ import { ComponentStylingModel, ComponentStylingPropertiesControlComponent } from '@anglr/dynamic/layout-editor';
2
+ import { MaterialTabModel } from './tab.model';
3
+ /**
4
+ * Material expansion panel layout metadata
5
+ */
6
+ export class MaterialTabLayoutEditorMetadata {
7
+ //######################### constructor #########################
8
+ constructor() {
9
+ //######################### public properties - implementation of LayoutEditorMetadataDescriptor #########################
10
+ /**
11
+ * @inheritdoc
12
+ */
13
+ this.metaInfo = {
14
+ name: 'Tabs',
15
+ description: 'Material tabs',
16
+ group: 'Material',
17
+ optionsMetadata: {
18
+ propertiesMetadata: [
19
+ {
20
+ modelType: ComponentStylingModel,
21
+ propertiesControls: [
22
+ ComponentStylingPropertiesControlComponent,
23
+ ],
24
+ },
25
+ {
26
+ modelType: MaterialTabModel,
27
+ propertiesControls: [
28
+ // genericPropertiesControlFor<MaterialExpansionPanelModel>(['title', 'description', 'expanded'])
29
+ ],
30
+ },
31
+ ]
32
+ }
33
+ };
34
+ /**
35
+ * @inheritdoc
36
+ */
37
+ this.addDescendant = (metadata, options, index) => {
38
+ var _a;
39
+ (_a = options.children) !== null && _a !== void 0 ? _a : (options.children = []);
40
+ options.children.splice(index, 0, metadata);
41
+ };
42
+ /**
43
+ * @inheritdoc
44
+ */
45
+ this.canDropMetadata = () => true;
46
+ /**
47
+ * @inheritdoc
48
+ */
49
+ this.getChildrenContainer = element => element.querySelector('.mat-expansion-panel-body');
50
+ /**
51
+ * @inheritdoc
52
+ */
53
+ this.removeDescendant = (id, options) => {
54
+ var _a;
55
+ (_a = options.children) !== null && _a !== void 0 ? _a : (options.children = []);
56
+ const index = options.children.findIndex(itm => itm.id === id);
57
+ options.children.splice(index, 1);
58
+ };
59
+ Object.freeze(this);
60
+ }
61
+ }
62
+ //# sourceMappingURL=tab.layoutMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.layoutMetadata.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tab/metadata/tab.layoutMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAE,0CAA0C,EAA2D,MAAM,8BAA8B,CAAC;AAIzK,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,MAAM,OAAO,+BAA+B;IA+DxC,iEAAiE;IACjE;QA9DA,0HAA0H;QAE1H;;WAEG;QACI,aAAQ,GACf;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,eAAe;YAC5B,KAAK,EAAE,UAAU;YACjB,eAAe,EACf;gBACI,kBAAkB,EAClB;oBACI;wBACI,SAAS,EAAE,qBAAqB;wBAChC,kBAAkB,EAClB;4BACI,0CAA0C;yBAC7C;qBACJ;oBACD;wBACI,SAAS,EAAE,gBAAgB;wBAC3B,kBAAkB,EAClB;wBACI,iGAAiG;yBACpG;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF;;WAEG;QACI,kBAAa,GAA4E,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;;YAEzH,MAAA,OAAO,CAAC,QAAQ,oCAAhB,OAAO,CAAC,QAAQ,GAAK,EAAE,EAAC;YACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC;QAEF;;WAEG;QACI,oBAAe,GAAiE,GAAG,EAAE,CAAC,IAAI,CAAC;QAElG;;WAEG;QACI,yBAAoB,GAAmC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAE5H;;WAEG;QACI,qBAAgB,GAAmD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;;YAEtF,MAAA,OAAO,CAAC,QAAQ,oCAAhB,OAAO,CAAC,QAAQ,GAAK,EAAE,EAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC,CAAA;QAKG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACJ","sourcesContent":["import {LayoutComponentMetadata} from '@anglr/dynamic/layout';\nimport {ComponentStylingModel, ComponentStylingPropertiesControlComponent, LayoutEditorMetadataDescriptor, LayoutEditorMetadataInfo} from '@anglr/dynamic/layout-editor';\nimport {Action, Func} from '@jscrpt/common';\n\nimport {MaterialTabComponentOptions} from '../tab.options';\nimport {MaterialTabModel} from './tab.model';\n\n\n/**\n * Material expansion panel layout metadata\n */\nexport class MaterialTabLayoutEditorMetadata implements LayoutEditorMetadataDescriptor<MaterialTabComponentOptions>\n{\n //######################### public properties - implementation of LayoutEditorMetadataDescriptor #########################\n\n /**\n * @inheritdoc\n */\n public metaInfo?: LayoutEditorMetadataInfo =\n {\n name: 'Tabs',\n description: 'Material tabs',\n group: 'Material',\n optionsMetadata:\n {\n propertiesMetadata:\n [\n {\n modelType: ComponentStylingModel,\n propertiesControls: \n [\n ComponentStylingPropertiesControlComponent,\n ],\n },\n {\n modelType: MaterialTabModel,\n propertiesControls: \n [\n // genericPropertiesControlFor<MaterialExpansionPanelModel>(['title', 'description', 'expanded'])\n ],\n },\n ]\n }\n };\n\n /**\n * @inheritdoc\n */\n public addDescendant?: Action<[LayoutComponentMetadata, MaterialTabComponentOptions, number]> = (metadata, options, index) =>\n {\n options.children ??= [];\n options.children.splice(index, 0, metadata);\n };\n\n /**\n * @inheritdoc\n */\n public canDropMetadata?: Func<boolean, [MaterialTabComponentOptions|undefined|null]> = () => true;\n\n /**\n * @inheritdoc\n */\n public getChildrenContainer?: Func<Element|null, [Element]> = element => element.querySelector('.mat-expansion-panel-body');\n\n /**\n * @inheritdoc\n */\n public removeDescendant?: Action<[string, MaterialTabComponentOptions]> = (id, options) =>\n {\n options.children ??= [];\n const index = options.children.findIndex(itm => itm.id === id);\n options.children.splice(index, 1);\n }\n\n //######################### constructor #########################\n constructor()\n {\n Object.freeze(this);\n }\n}"]}
@@ -0,0 +1,11 @@
1
+ import { mapValuesToThis } from '@jscrpt/common';
2
+ /**
3
+ * Material tab model for properties editor
4
+ */
5
+ export class MaterialTabModel {
6
+ //######################### constructor #########################
7
+ constructor(value) {
8
+ mapValuesToThis.bind(this)(value);
9
+ }
10
+ }
11
+ //# sourceMappingURL=tab.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.model.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tab/metadata/tab.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAI/C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IASzB,iEAAiE;IACjE,YAAY,KAAiD;QAEzD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ","sourcesContent":["import {LayoutComponentMetadata} from '@anglr/dynamic/layout';\nimport {mapValuesToThis} from '@jscrpt/common';\n\nimport {MaterialTabComponentOptions} from '../tab.options';\n\n/**\n * Material tab model for properties editor\n */\nexport class MaterialTabModel implements MaterialTabComponentOptions\n{\n //######################### public properties #########################\n\n /**\n * @inheritdoc\n */\n public children: LayoutComponentMetadata[]|undefined|null;\n\n //######################### constructor #########################\n constructor(value: MaterialTabComponentOptions|undefined|null)\n {\n mapValuesToThis.bind(this)(value);\n }\n}"]}
@@ -0,0 +1,24 @@
1
+ import { MaterialTabNodeSAComponent } from '../node/tabNode.component';
2
+ /**
3
+ * Material tab relations metadata
4
+ */
5
+ export class MaterialTabRelationsEditorMetadata {
6
+ //######################### constructor #########################
7
+ constructor() {
8
+ //######################### public properties - implementation of RelationsEditorMetadataDescriptor #########################
9
+ /**
10
+ * @inheritdoc
11
+ */
12
+ this.metaInfo = {
13
+ name: 'Tab',
14
+ description: 'Material tab',
15
+ group: 'Material',
16
+ };
17
+ /**
18
+ * @inheritdoc
19
+ */
20
+ this.nodeDefinition = MaterialTabNodeSAComponent;
21
+ Object.freeze(this);
22
+ }
23
+ }
24
+ //# sourceMappingURL=tab.relationsMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.relationsMetadata.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tab/metadata/tab.relationsMetadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,kCAAkC;IAmB3C,iEAAiE;IACjE;QAlBA,6HAA6H;QAE7H;;WAEG;QACI,aAAQ,GACf;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,cAAc;YAC3B,KAAK,EAAE,UAAU;SACpB,CAAC;QAEF;;WAEG;QACI,mBAAc,GAAwB,0BAA0B,CAAC;QAKpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACJ","sourcesContent":["import {Type} from '@angular/core';\nimport {RelationsEditorMetadataDescriptor, RelationsEditorMetadataInfo, RelationsNode} from '@anglr/dynamic/relations-editor';\n\nimport {MaterialTabNodeSAComponent} from '../node/tabNode.component';\n\n/**\n * Material tab relations metadata\n */\nexport class MaterialTabRelationsEditorMetadata implements RelationsEditorMetadataDescriptor\n{\n //######################### public properties - implementation of RelationsEditorMetadataDescriptor #########################\n\n /**\n * @inheritdoc\n */\n public metaInfo?: RelationsEditorMetadataInfo =\n {\n name: 'Tab',\n description: 'Material tab',\n group: 'Material',\n };\n\n /**\n * @inheritdoc\n */\n public nodeDefinition: Type<RelationsNode> = MaterialTabNodeSAComponent;\n\n //######################### constructor #########################\n constructor()\n {\n Object.freeze(this);\n }\n}"]}
@@ -0,0 +1,19 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent, RelationsNodeHeaderSAComponent } from '@anglr/dynamic/relations-editor';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Relations node component for material tab
6
+ */
7
+ export class MaterialTabNodeSAComponent extends RelationsNodeBase {
8
+ }
9
+ MaterialTabNodeSAComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabNodeSAComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
+ MaterialTabNodeSAComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: MaterialTabNodeSAComponent, isStandalone: true, selector: "material-tab-node", usesInheritance: true, ngImport: i0, template: "<relations-node-header [parent]=\"this\" [destroySubject]=\"destroySubject\"></relations-node-header>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" name=\"visible\" [parent]=\"this\"></relation-node-input>\n <div>visible</div>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "component", type: RelationsNodeHeaderSAComponent, selector: "relations-node-header", inputs: ["parent", "destroySubject", "name"] }, { kind: "component", type: RelationNodeInputSAComponent, selector: "relation-node-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabNodeSAComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'material-tab-node', standalone: true, imports: [
14
+ RelationsNodeHeaderSAComponent,
15
+ RelationNodeInputSAComponent,
16
+ RelationNodeOutputSAComponent,
17
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<relations-node-header [parent]=\"this\" [destroySubject]=\"destroySubject\"></relations-node-header>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" name=\"visible\" [parent]=\"this\"></relation-node-input>\n <div>visible</div>\n </div>\n </div>\n </div>\n</div>" }]
18
+ }] });
19
+ //# sourceMappingURL=tabNode.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabNode.component.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tab/node/tabNode.component.ts","../../../../../../material-components/src/dynamicItems/tab/node/tabNode.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,iBAAiB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,8BAA8B,EAAC,MAAM,iCAAiC,CAAC;;AAE9K;;GAEG;AAcH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;;uHAApD,0BAA0B;2GAA1B,0BAA0B,oGCnBvC,yeAWM,4CDEE,8BAA8B,gHAC9B,4BAA4B;2FAKvB,0BAA0B;kBAbtC,SAAS;+BAEI,mBAAmB,cAEjB,IAAI,WAEhB;wBACI,8BAA8B;wBAC9B,4BAA4B;wBAC5B,6BAA6B;qBAChC,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {RelationsNode, RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent, RelationsNodeHeaderSAComponent} from '@anglr/dynamic/relations-editor';\n\n/**\n * Relations node component for material tab\n */\n@Component(\n{\n selector: 'material-tab-node',\n templateUrl: 'tabNode.component.html',\n standalone: true,\n imports:\n [\n RelationsNodeHeaderSAComponent,\n RelationNodeInputSAComponent,\n RelationNodeOutputSAComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MaterialTabNodeSAComponent extends RelationsNodeBase implements RelationsNode\n{\n}","<relations-node-header [parent]=\"this\" [destroySubject]=\"destroySubject\"></relations-node-header>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" name=\"visible\" [parent]=\"this\"></relation-node-input>\n <div>visible</div>\n </div>\n </div>\n </div>\n</div>"]}
@@ -0,0 +1,100 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Injector, Inject, Optional, Input } from '@angular/core';
3
+ import { MAT_TAB, MatTab, MatTabsModule } from '@angular/material/tabs';
4
+ import { CommonModule } from '@angular/common';
5
+ import { LayoutComponentBase, LayoutComponentRendererSADirective } from '@anglr/dynamic/layout';
6
+ import { DescendantsGetter, LayoutEditorMetadata } from '@anglr/dynamic/layout-editor';
7
+ import { RelationsEditorMetadata } from '@anglr/dynamic/relations-editor';
8
+ import { HostDisplayBlockStyle } from '@anglr/common';
9
+ import { MaterialTabLayoutMetadataLoader, MaterialTabRelationsMetadataLoader } from './tab.metadata';
10
+ import { MATERIAL_TAB_GROUP, MaterialTabGroupSAComponent } from '../tabGroup/tabGroup.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ import * as i2 from "../tabGroup/tabGroup.component";
14
+ import * as i3 from "@angular/material/tabs";
15
+ /**
16
+ * Component used for displaying toggle panel layout
17
+ */
18
+ let MaterialTabSAComponent = class MaterialTabSAComponent extends LayoutComponentBase {
19
+ //######################### public properties - inputs #########################
20
+ /**
21
+ * Indication whether tab is visible
22
+ */
23
+ set visible(visible) {
24
+ this._visible = visible;
25
+ if (this.visible) {
26
+ this.showTab();
27
+ }
28
+ else {
29
+ this.hideTab();
30
+ }
31
+ }
32
+ get visible() {
33
+ return this._visible;
34
+ }
35
+ //######################### constructor #########################
36
+ constructor(changeDetector, componentElement, injector, _closestTabGroup, _closestTab) {
37
+ super(changeDetector, componentElement, injector);
38
+ this._closestTabGroup = _closestTabGroup;
39
+ this._closestTab = _closestTab;
40
+ }
41
+ //######################### protected - overrides #########################
42
+ /**
43
+ * @inheritdoc
44
+ */
45
+ onOptionsSet() { }
46
+ /**
47
+ * Hides tab content
48
+ */
49
+ hideTab() {
50
+ var _a;
51
+ if (this._closestTab) {
52
+ this._closestTab.disabled = true;
53
+ }
54
+ (_a = this._closestTabGroup) === null || _a === void 0 ? void 0 : _a.onHideTab(this.tabGroupIndex);
55
+ }
56
+ /**
57
+ * Shows tab content
58
+ */
59
+ showTab() {
60
+ var _a;
61
+ if (this._closestTab) {
62
+ this._closestTab.disabled = false;
63
+ }
64
+ (_a = this._closestTabGroup) === null || _a === void 0 ? void 0 : _a.invalidateVisuals();
65
+ }
66
+ };
67
+ MaterialTabSAComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabSAComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Injector }, { token: MATERIAL_TAB_GROUP, optional: true }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Component });
68
+ MaterialTabSAComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: MaterialTabSAComponent, isStandalone: true, selector: "material-tab", inputs: { visible: "visible" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let type of options?.children\">\n <ng-template [layoutComponentRenderer]=\"type\"></ng-template>\n</ng-container>", styles: [":host{display: block;}"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: LayoutComponentRendererSADirective, selector: "[layoutComponentRenderer]", inputs: ["layoutComponentRenderer", "layoutComponentRendererInjector", "layoutComponentRendererDisableTransformer"], outputs: ["layoutComponentRendererComponentChange", "componentElementChange"], exportAs: ["layoutComponentRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ MaterialTabSAComponent = __decorate([
70
+ DescendantsGetter(options => { var _a; return (_a = options === null || options === void 0 ? void 0 : options.children) !== null && _a !== void 0 ? _a : []; }),
71
+ LayoutEditorMetadata(MaterialTabLayoutMetadataLoader),
72
+ RelationsEditorMetadata(MaterialTabRelationsMetadataLoader),
73
+ __metadata("design:paramtypes", [ChangeDetectorRef,
74
+ ElementRef,
75
+ Injector,
76
+ MaterialTabGroupSAComponent,
77
+ MatTab])
78
+ ], MaterialTabSAComponent);
79
+ export { MaterialTabSAComponent };
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabSAComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'material-tab', standalone: true, imports: [
83
+ CommonModule,
84
+ MatTabsModule,
85
+ LayoutComponentRendererSADirective,
86
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let type of options?.children\">\n <ng-template [layoutComponentRenderer]=\"type\"></ng-template>\n</ng-container>", styles: [":host{display: block;}"] }]
87
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i2.MaterialTabGroupSAComponent, decorators: [{
88
+ type: Inject,
89
+ args: [MATERIAL_TAB_GROUP]
90
+ }, {
91
+ type: Optional
92
+ }] }, { type: i3.MatTab, decorators: [{
93
+ type: Inject,
94
+ args: [MAT_TAB]
95
+ }, {
96
+ type: Optional
97
+ }] }]; }, propDecorators: { visible: [{
98
+ type: Input
99
+ }] } });
100
+ //# sourceMappingURL=tab.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.component.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tab/tab.component.ts","../../../../../material-components/src/dynamicItems/tab/tab.component.html"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AACnI,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAkB,mBAAmB,EAAE,kCAAkC,EAAC,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAC,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAC,+BAA+B,EAAE,kCAAkC,EAAC,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAAE,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;;;;;AAE/F;;GAEG;AAkBI,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,mBAAgD;IAqBxF,gFAAgF;IAEhF;;OAEG;IACH,IACW,OAAO,CAAC,OAA+B;QAE9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,EAChB;YACI,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;aAED;YACI,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;IACD,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,iEAAiE;IACjE,YAAY,cAAiC,EACjC,gBAAyC,EACzC,QAAkB,EAC8B,gBAA6C,EACxD,WAAmB;QAEhE,KAAK,CAAC,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAHM,qBAAgB,GAAhB,gBAAgB,CAA6B;QACxD,gBAAW,GAAX,WAAW,CAAQ;IAGpE,CAAC;IAED,2EAA2E;IAE3E;;OAEG;IACgB,YAAY,KAC9B,CAAC;IAEF;;OAEG;IACO,OAAO;;QAEb,IAAI,IAAI,CAAC,WAAW,EACpB;YACI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;SACpC;QAED,MAAA,IAAI,CAAC,gBAAgB,0CAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACO,OAAO;;QAEb,IAAI,IAAI,CAAC,WAAW,EACpB;YACI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;SACrC;QAED,MAAA,IAAI,CAAC,gBAAgB,0CAAE,iBAAiB,EAAE,CAAC;IAC/C,CAAC;;mHAtFQ,sBAAsB,qGAgDX,kBAAkB,6BAClB,OAAO;uGAjDlB,sBAAsB,+HCjCnC,8IAEe,+EDsBP,YAAY,2JACZ,aAAa,+BACb,kCAAkC;AAO7B,sBAAsB;IAHlC,iBAAiB,CAA8B,OAAO,CAAC,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,EAAE,CAAA,EAAA,CAAC;IAClF,oBAAoB,CAAC,+BAA+B,CAAC;IACrD,uBAAuB,CAAC,kCAAkC,CAAC;qCA8C5B,iBAAiB;QACf,UAAU;QAClB,QAAQ;QACgD,2BAA2B;QAC3C,MAAM;GAjD3D,sBAAsB,CAuFlC;SAvFY,sBAAsB;2FAAtB,sBAAsB;kBAjBlC,SAAS;+BAEI,cAAc,cAGZ,IAAI,WAEhB;wBACI,YAAY;wBACZ,aAAa;wBACb,kCAAkC;qBACrC,mBACgB,uBAAuB,CAAC,MAAM;;0BAqDlC,MAAM;2BAAC,kBAAkB;;0BAAG,QAAQ;;0BACpC,MAAM;2BAAC,OAAO;;0BAAG,QAAQ;4CAtB3B,OAAO;sBADjB,KAAK","sourcesContent":["import {Component, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Injector, Inject, Optional, Input} from '@angular/core';\nimport {MAT_TAB, MatTab, MatTabsModule} from '@angular/material/tabs';\nimport {CommonModule} from '@angular/common';\nimport {LayoutComponent, LayoutComponentBase, LayoutComponentRendererSADirective} from '@anglr/dynamic/layout';\nimport {DescendantsGetter, LayoutEditorMetadata} from '@anglr/dynamic/layout-editor';\nimport {RelationsEditorMetadata} from '@anglr/dynamic/relations-editor';\nimport {RelationsComponent} from '@anglr/dynamic/relations';\nimport {HostDisplayBlockStyle} from '@anglr/common';\n\nimport {MaterialTabComponentOptions} from './tab.options';\nimport {MaterialTabLayoutMetadataLoader, MaterialTabRelationsMetadataLoader} from './tab.metadata';\nimport {MATERIAL_TAB_GROUP, MaterialTabGroupSAComponent} from '../tabGroup/tabGroup.component';\n\n/**\n * Component used for displaying toggle panel layout\n */\n@Component(\n{\n selector: 'material-tab',\n templateUrl: 'tab.component.html',\n styles: [HostDisplayBlockStyle],\n standalone: true,\n imports:\n [\n CommonModule,\n MatTabsModule,\n LayoutComponentRendererSADirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n@DescendantsGetter<MaterialTabComponentOptions>(options => options?.children ?? [])\n@LayoutEditorMetadata(MaterialTabLayoutMetadataLoader)\n@RelationsEditorMetadata(MaterialTabRelationsMetadataLoader)\nexport class MaterialTabSAComponent extends LayoutComponentBase<MaterialTabComponentOptions> implements LayoutComponent<MaterialTabComponentOptions>, RelationsComponent\n{\n //######################### private properties #########################\n\n /**\n * Indication whether tab is visible\n */\n private _visible: boolean|null|undefined;\n\n //######################### public properties #########################\n\n /**\n * Material tab relation options\n */\n public relationsOptions: any;\n\n /**\n * Material tab index in parent tab group\n */\n public tabGroupIndex: number|null|undefined;\n\n //######################### public properties - inputs #########################\n\n /**\n * Indication whether tab is visible\n */\n @Input()\n public set visible(visible: boolean|null|undefined)\n {\n this._visible = visible;\n if (this.visible)\n {\n this.showTab();\n }\n else\n {\n this.hideTab();\n }\n }\n public get visible(): boolean|null|undefined\n {\n return this._visible;\n }\n\n //######################### constructor #########################\n constructor(changeDetector: ChangeDetectorRef,\n componentElement: ElementRef<HTMLElement>,\n injector: Injector,\n @Inject(MATERIAL_TAB_GROUP) @Optional() private _closestTabGroup: MaterialTabGroupSAComponent,\n @Inject(MAT_TAB) @Optional() private _closestTab: MatTab)\n {\n super(changeDetector, componentElement, injector);\n }\n\n //######################### protected - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override onOptionsSet(): void\n {}\n\n /**\n * Hides tab content\n */\n protected hideTab()\n {\n if (this._closestTab)\n {\n this._closestTab.disabled = true;\n }\n \n this._closestTabGroup?.onHideTab(this.tabGroupIndex);\n }\n\n /**\n * Shows tab content\n */\n protected showTab()\n {\n if (this._closestTab)\n {\n this._closestTab.disabled = false;\n }\n\n this._closestTabGroup?.invalidateVisuals();\n }\n}","<ng-container *ngFor=\"let type of options?.children\">\n <ng-template [layoutComponentRenderer]=\"type\"></ng-template>\n</ng-container>"]}
@@ -0,0 +1,10 @@
1
+ import { __awaiter } from "tslib";
2
+ /**
3
+ * Material tab layout metadata loader
4
+ */
5
+ export const MaterialTabLayoutMetadataLoader = () => __awaiter(void 0, void 0, void 0, function* () { return new (yield import('./metadata/tab.layoutMetadata')).MaterialTabLayoutEditorMetadata(); });
6
+ /**
7
+ * Material tab relations metadata loader
8
+ */
9
+ export const MaterialTabRelationsMetadataLoader = () => __awaiter(void 0, void 0, void 0, function* () { return new (yield import('./metadata/tab.relationsMetadata')).MaterialTabRelationsEditorMetadata(); });
10
+ //# sourceMappingURL=tab.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.metadata.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tab/tab.metadata.ts"],"names":[],"mappings":";AAMA;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAuF,GAAS,EAAE,kDAAC,OAAA,IAAI,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAA,GAAA,CAAC;AAErO;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAA6D,GAAS,EAAE,kDAAC,OAAA,IAAI,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,kCAAkC,EAAE,CAAA,GAAA,CAAC","sourcesContent":["import {DynamicMetadataLoader} from '@anglr/dynamic';\nimport {LayoutEditorMetadataDescriptor} from '@anglr/dynamic/layout-editor';\nimport {RelationsEditorMetadataDescriptor} from '@anglr/dynamic/relations-editor';\n\nimport {MaterialTabComponentOptions} from './tab.options';\n\n/**\n * Material tab layout metadata loader\n */\nexport const MaterialTabLayoutMetadataLoader: DynamicMetadataLoader<LayoutEditorMetadataDescriptor<MaterialTabComponentOptions>> = async () => new (await import('./metadata/tab.layoutMetadata')).MaterialTabLayoutEditorMetadata();\n\n/**\n * Material tab relations metadata loader\n */\nexport const MaterialTabRelationsMetadataLoader: DynamicMetadataLoader<RelationsEditorMetadataDescriptor> = async () => new (await import('./metadata/tab.relationsMetadata')).MaterialTabRelationsEditorMetadata();\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tab.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.options.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tab/tab.options.ts"],"names":[],"mappings":"","sourcesContent":["import {LayoutComponentMetadata} from '@anglr/dynamic/layout';\n\n/**\n * Options for material expansion panel component\n */\nexport interface MaterialTabComponentOptions\n{\n //######################### properties #########################\n\n /**\n * Array of children that are going to be rendered\n */\n children: LayoutComponentMetadata[]|undefined|null;\n}"]}
@@ -0,0 +1,6 @@
1
+ import { ComponentStylingExtension } from '@anglr/dynamic/layout';
2
+ import { RelationsRegistrationExtension } from '@anglr/dynamic/relations';
3
+ import { MaterialTabSAComponent } from './tab.component';
4
+ export default MaterialTabSAComponent;
5
+ export const extensions = [ComponentStylingExtension, RelationsRegistrationExtension];
6
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tab/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,8BAA8B,EAAC,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAEvD,eAAe,sBAAsB,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,yBAAyB,EAAE,8BAA8B,CAAC,CAAC","sourcesContent":["import {ComponentStylingExtension} from '@anglr/dynamic/layout';\nimport {RelationsRegistrationExtension} from '@anglr/dynamic/relations';\n\nimport {MaterialTabSAComponent} from './tab.component';\n\nexport default MaterialTabSAComponent;\n\nexport const extensions = [ComponentStylingExtension, RelationsRegistrationExtension];"]}
@@ -0,0 +1,2 @@
1
+ export * from './tabGroup.options';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../material-components/src/dynamicItems/tabGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './tabGroup.options';\n"]}
@@ -0,0 +1,46 @@
1
+ import { ComponentStylingModel, ComponentStylingPropertiesControlComponent } from '@anglr/dynamic/layout-editor';
2
+ import { MaterialTabGroupModel } from './tabGroup.model';
3
+ import { MaterialTabGroupPropertiesControlSAComponent } from '../misc/components';
4
+ /**
5
+ * Material expansion panel layout metadata
6
+ */
7
+ export class MaterialTabGroupLayoutEditorMetadata {
8
+ //######################### constructor #########################
9
+ constructor() {
10
+ //######################### public properties - implementation of LayoutEditorMetadataDescriptor #########################
11
+ /**
12
+ * @inheritdoc
13
+ */
14
+ this.metaInfo = {
15
+ name: 'Tabs',
16
+ description: 'Material tabs',
17
+ group: 'Material',
18
+ optionsMetadata: {
19
+ propertiesMetadata: [
20
+ {
21
+ modelType: ComponentStylingModel,
22
+ propertiesControls: [
23
+ ComponentStylingPropertiesControlComponent,
24
+ ],
25
+ },
26
+ {
27
+ modelType: MaterialTabGroupModel,
28
+ propertiesControls: [
29
+ MaterialTabGroupPropertiesControlSAComponent,
30
+ ],
31
+ },
32
+ ]
33
+ }
34
+ };
35
+ /**
36
+ * @inheritdoc
37
+ */
38
+ this.canDropMetadata = () => false;
39
+ /**
40
+ * @inheritdoc
41
+ */
42
+ this.getChildrenContainer = element => element.querySelector('.mat-expansion-panel-body');
43
+ Object.freeze(this);
44
+ }
45
+ }
46
+ //# sourceMappingURL=tabGroup.layoutMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabGroup.layoutMetadata.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tabGroup/metadata/tabGroup.layoutMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,0CAA0C,EAA2D,MAAM,8BAA8B,CAAC;AAIzK,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,4CAA4C,EAAC,MAAM,oBAAoB,CAAC;AAGhF;;GAEG;AACH,MAAM,OAAO,oCAAoC;IA4C7C,iEAAiE;IACjE;QA3CA,0HAA0H;QAE1H;;WAEG;QACI,aAAQ,GACf;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,eAAe;YAC5B,KAAK,EAAE,UAAU;YACjB,eAAe,EACf;gBACI,kBAAkB,EAClB;oBACI;wBACI,SAAS,EAAE,qBAAqB;wBAChC,kBAAkB,EAClB;4BACI,0CAA0C;yBAC7C;qBACJ;oBACD;wBACI,SAAS,EAAE,qBAAqB;wBAChC,kBAAkB,EAClB;4BACI,4CAA4C;yBAC/C;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF;;WAEG;QACI,oBAAe,GAAsE,GAAG,EAAE,CAAC,KAAK,CAAC;QAExG;;WAEG;QACI,yBAAoB,GAAmC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAKxH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACJ","sourcesContent":["import {ComponentStylingModel, ComponentStylingPropertiesControlComponent, LayoutEditorMetadataDescriptor, LayoutEditorMetadataInfo} from '@anglr/dynamic/layout-editor';\nimport {Func} from '@jscrpt/common';\n\nimport {MaterialTabGroupComponentOptions} from '../tabGroup.options';\nimport {MaterialTabGroupModel} from './tabGroup.model';\nimport {MaterialTabGroupPropertiesControlSAComponent} from '../misc/components';\n\n\n/**\n * Material expansion panel layout metadata\n */\nexport class MaterialTabGroupLayoutEditorMetadata implements LayoutEditorMetadataDescriptor<MaterialTabGroupComponentOptions>\n{\n //######################### public properties - implementation of LayoutEditorMetadataDescriptor #########################\n\n /**\n * @inheritdoc\n */\n public metaInfo?: LayoutEditorMetadataInfo =\n {\n name: 'Tabs',\n description: 'Material tabs',\n group: 'Material',\n optionsMetadata:\n {\n propertiesMetadata:\n [\n {\n modelType: ComponentStylingModel,\n propertiesControls: \n [\n ComponentStylingPropertiesControlComponent,\n ],\n },\n {\n modelType: MaterialTabGroupModel,\n propertiesControls: \n [\n MaterialTabGroupPropertiesControlSAComponent,\n ],\n },\n ]\n }\n };\n\n /**\n * @inheritdoc\n */\n public canDropMetadata?: Func<boolean, [MaterialTabGroupComponentOptions|undefined|null]> = () => false;\n\n /**\n * @inheritdoc\n */\n public getChildrenContainer?: Func<Element|null, [Element]> = element => element.querySelector('.mat-expansion-panel-body');\n\n //######################### constructor #########################\n constructor()\n {\n Object.freeze(this);\n }\n}"]}
@@ -0,0 +1,21 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { FormGroup } from '@angular/forms';
3
+ import { FormArrayChild, FormArrayProperty } from '@anglr/common/forms';
4
+ import { mapValuesToThis } from '@jscrpt/common';
5
+ /**
6
+ * Material tab model for properties editor
7
+ */
8
+ export class MaterialTabGroupModel {
9
+ //######################### constructor #########################
10
+ constructor(value) {
11
+ //######################### public properties #########################
12
+ this.tabs = [];
13
+ mapValuesToThis.bind(this)(value);
14
+ }
15
+ }
16
+ __decorate([
17
+ FormArrayChild(FormGroup),
18
+ FormArrayProperty(),
19
+ __metadata("design:type", Object)
20
+ ], MaterialTabGroupModel.prototype, "tabs", void 0);
21
+ //# sourceMappingURL=tabGroup.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabGroup.model.js","sourceRoot":"","sources":["../../../../../../material-components/src/dynamicItems/tabGroup/metadata/tabGroup.model.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAI/C;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAQ9B,iEAAiE;IACjE,YAAY,KAAsD;QAPlE,uEAAuE;QAIhE,SAAI,GAAyB,EAAE,CAAC;QAKnC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AATG;IAAC,cAAc,CAAC,SAAS,CAAC;IACzB,iBAAiB,EAAE;;mDACmB","sourcesContent":["import {FormGroup} from '@angular/forms';\nimport {FormArrayChild, FormArrayProperty} from '@anglr/common/forms';\nimport {mapValuesToThis} from '@jscrpt/common';\n\nimport {MaterialTabGroupComponentOptions, Tab} from '../tabGroup.options';\n\n/**\n * Material tab model for properties editor\n */\nexport class MaterialTabGroupModel implements MaterialTabGroupComponentOptions\n{\n //######################### public properties #########################\n\n @FormArrayChild(FormGroup)\n @FormArrayProperty()\n public tabs: Tab[]|undefined|null = [];\n\n //######################### constructor #########################\n constructor(value: MaterialTabGroupComponentOptions|undefined|null)\n {\n mapValuesToThis.bind(this)(value);\n }\n}"]}
@@ -0,0 +1,2 @@
1
+ export * from './tabGroupPropertiesControl/tabGroupPropertiesControl.component';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../material-components/src/dynamicItems/tabGroup/misc/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iEAAiE,CAAC","sourcesContent":["export * from './tabGroupPropertiesControl/tabGroupPropertiesControl.component';\n"]}
@@ -0,0 +1,74 @@
1
+ import { __awaiter } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
5
+ import { TitledDialogService } from '@anglr/common/material';
6
+ import { LayoutEditorMetadataExtractor, PropertiesControlBase } from '@anglr/dynamic/layout-editor';
7
+ import { generateId } from '@jscrpt/common';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@anglr/dynamic/layout-editor";
10
+ import * as i2 from "@anglr/common/material";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "@angular/common";
13
+ /**
14
+ * Component used for displaying material tab group properties control
15
+ */
16
+ export class MaterialTabGroupPropertiesControlSAComponent extends PropertiesControlBase {
17
+ //######################### protected properties #########################
18
+ /**
19
+ * Tabs control
20
+ */
21
+ get tabsControl() {
22
+ var _a;
23
+ return (_a = this.form) === null || _a === void 0 ? void 0 : _a.controls.tabs;
24
+ }
25
+ /**
26
+ * Tabs control form groups
27
+ */
28
+ get tabsControls() {
29
+ var _a;
30
+ return (_a = this.tabsControl) === null || _a === void 0 ? void 0 : _a.controls;
31
+ }
32
+ //######################### constructor #########################
33
+ constructor(changeDetector, metadataExtractor, dialog, fb) {
34
+ super(changeDetector, metadataExtractor);
35
+ this.dialog = dialog;
36
+ this.fb = fb;
37
+ }
38
+ //######################### protected methods - template bindings #########################
39
+ /**
40
+ * Adds new tab to tab group
41
+ */
42
+ addTab() {
43
+ var _a;
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ (_a = this.tabsControl) === null || _a === void 0 ? void 0 : _a.push(this.fb.group({
46
+ title: 'Tab',
47
+ content: {
48
+ id: `${generateId(6)}-tab`,
49
+ package: 'material-components',
50
+ name: 'tab',
51
+ options: {}
52
+ }
53
+ }));
54
+ });
55
+ }
56
+ /**
57
+ * Removes tab on specified index in form array
58
+ * @param index Tab index to remove
59
+ */
60
+ removeTab(index) {
61
+ var _a;
62
+ (_a = this.tabsControl) === null || _a === void 0 ? void 0 : _a.removeAt(index);
63
+ }
64
+ }
65
+ MaterialTabGroupPropertiesControlSAComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabGroupPropertiesControlSAComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LayoutEditorMetadataExtractor }, { token: i2.TitledDialogService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
66
+ MaterialTabGroupPropertiesControlSAComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: MaterialTabGroupPropertiesControlSAComponent, isStandalone: true, selector: "material-tab-group-properties-control", usesInheritance: true, ngImport: i0, template: "<div class=\"properties-form-group\">\n <div>Tabs</div>\n <div>\n <div class=\"dynamic-flex-row\" *ngFor=\"let tabControl of tabsControls; let i = index\" [formGroup]=\"tabControl\">\n <div>{{i+1}}.</div>\n <input class=\"properties-form-control dynamic-flex-1\" type=\"text\" formControlName=\"title\">\n <button type=\"button\" class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"$event.preventDefault(); $event.stopPropagation(); removeTab(i)\">\n <span class=\"fas fa-times\"></span>\n </button>\n </div>\n \n <button type=\"button\" class=\"dynamic-btn dynamic-btn-primary dynamic-margin-vertical-small\" (click)=\"addTab()\">\n <span>Add tab</span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MaterialTabGroupPropertiesControlSAComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'material-tab-group-properties-control', standalone: true, imports: [
70
+ CommonModule,
71
+ ReactiveFormsModule,
72
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"properties-form-group\">\n <div>Tabs</div>\n <div>\n <div class=\"dynamic-flex-row\" *ngFor=\"let tabControl of tabsControls; let i = index\" [formGroup]=\"tabControl\">\n <div>{{i+1}}.</div>\n <input class=\"properties-form-control dynamic-flex-1\" type=\"text\" formControlName=\"title\">\n <button type=\"button\" class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"$event.preventDefault(); $event.stopPropagation(); removeTab(i)\">\n <span class=\"fas fa-times\"></span>\n </button>\n </div>\n \n <button type=\"button\" class=\"dynamic-btn dynamic-btn-primary dynamic-margin-vertical-small\" (click)=\"addTab()\">\n <span>Add tab</span>\n </button>\n </div>\n</div>\n" }]
73
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.LayoutEditorMetadataExtractor }, { type: i2.TitledDialogService }, { type: i3.FormBuilder }]; } });
74
+ //# sourceMappingURL=tabGroupPropertiesControl.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabGroupPropertiesControl.component.js","sourceRoot":"","sources":["../../../../../../../../material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.ts","../../../../../../../../material-components/src/dynamicItems/tabGroup/misc/components/tabGroupPropertiesControl/tabGroupPropertiesControl.component.html"],"names":[],"mappings":";AAAA,OAAO,EAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAY,WAAW,EAAa,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAC,6BAA6B,EAAqB,qBAAqB,EAAC,MAAM,8BAA8B,CAAC;AACrH,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;;;;;;AAI1C;;GAEG;AAaH,MAAM,OAAO,4CAA6C,SAAQ,qBAAuD;IAErH,0EAA0E;IAE1E;;OAEG;IACH,IAAc,WAAW;;QAErB,OAAkB,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,IAAc,YAAY;;QAEtB,OAAoB,MAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,CAAC;IACnD,CAAC;IAED,iEAAiE;IACjE,YAAY,cAAiC,EACjC,iBAAgD,EACtC,MAA2B,EAC3B,EAAe;QAEjC,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAHvB,WAAM,GAAN,MAAM,CAAqB;QAC3B,OAAE,GAAF,EAAE,CAAa;IAGrC,CAAC;IAED,2FAA2F;IAE3F;;OAEG;IACa,MAAM;;;YAElB,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACjC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE;oBACL,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM;oBAC1B,OAAO,EAAE,qBAAqB;oBAC9B,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,EAAE;iBACd;aACJ,CAAC,CAAC,CAAC;;KACP;IAED;;;OAGG;IACO,SAAS,CAAC,KAAa;;QAE7B,MAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;;yIAtDQ,4CAA4C;6HAA5C,4CAA4C,wHCxBzD,wzBAgBA,2CDGQ,YAAY,2JACZ,mBAAmB;2FAId,4CAA4C;kBAZxD,SAAS;+BAEI,uCAAuC,cAErC,IAAI,WAEhB;wBACI,YAAY;wBACZ,mBAAmB;qBACtB,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormArray, FormBuilder, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {TitledDialogService} from '@anglr/common/material';\nimport {LayoutEditorMetadataExtractor, PropertiesControl, PropertiesControlBase} from '@anglr/dynamic/layout-editor';\nimport {generateId} from '@jscrpt/common';\n\nimport {MaterialTabGroupComponentOptions} from '../../../tabGroup.options';\n\n/**\n * Component used for displaying material tab group properties control\n */\n@Component(\n{\n selector: 'material-tab-group-properties-control',\n templateUrl: 'tabGroupPropertiesControl.component.html',\n standalone: true,\n imports:\n [\n CommonModule,\n ReactiveFormsModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MaterialTabGroupPropertiesControlSAComponent extends PropertiesControlBase<MaterialTabGroupComponentOptions> implements PropertiesControl<MaterialTabGroupComponentOptions>\n{\n //######################### protected properties #########################\n\n /**\n * Tabs control\n */\n protected get tabsControl(): FormArray|null|undefined\n {\n return <FormArray>this.form?.controls.tabs;\n }\n\n /**\n * Tabs control form groups\n */\n protected get tabsControls(): FormGroup[]|null|undefined\n {\n return <FormGroup[]>this.tabsControl?.controls;\n }\n\n //######################### constructor #########################\n constructor(changeDetector: ChangeDetectorRef,\n metadataExtractor: LayoutEditorMetadataExtractor,\n protected dialog: TitledDialogService,\n protected fb: FormBuilder)\n {\n super(changeDetector, metadataExtractor);\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Adds new tab to tab group\n */\n protected async addTab(): Promise<void>\n {\n this.tabsControl?.push(this.fb.group({\n title: 'Tab',\n content: {\n id: `${generateId(6)}-tab`,\n package: 'material-components',\n name: 'tab',\n options: {}\n }\n }));\n }\n\n /**\n * Removes tab on specified index in form array\n * @param index Tab index to remove\n */\n protected removeTab(index: number): void\n {\n this.tabsControl?.removeAt(index);\n }\n}\n","<div class=\"properties-form-group\">\n <div>Tabs</div>\n <div>\n <div class=\"dynamic-flex-row\" *ngFor=\"let tabControl of tabsControls; let i = index\" [formGroup]=\"tabControl\">\n <div>{{i+1}}.</div>\n <input class=\"properties-form-control dynamic-flex-1\" type=\"text\" formControlName=\"title\">\n <button type=\"button\" class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"$event.preventDefault(); $event.stopPropagation(); removeTab(i)\">\n <span class=\"fas fa-times\"></span>\n </button>\n </div>\n \n <button type=\"button\" class=\"dynamic-btn dynamic-btn-primary dynamic-margin-vertical-small\" (click)=\"addTab()\">\n <span>Add tab</span>\n </button>\n </div>\n</div>\n"]}