@aquera/ngx-smart-table 0.0.2-alpha

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 (169) hide show
  1. package/README.md +152 -0
  2. package/aquera-ngx-smart-table.d.ts +5 -0
  3. package/esm2020/aquera-ngx-smart-table.mjs +5 -0
  4. package/esm2020/lib/builder/components/builder-preview/builder-preview.component.mjs +63 -0
  5. package/esm2020/lib/builder/components/builder-toolbar/builder-toolbar.component.mjs +115 -0
  6. package/esm2020/lib/builder/components/column-editor/column-editor.component.mjs +206 -0
  7. package/esm2020/lib/builder/components/column-list/column-list.component.mjs +125 -0
  8. package/esm2020/lib/builder/components/definition-builder/definition-builder.component.mjs +105 -0
  9. package/esm2020/lib/builder/components/table-config-editor/table-config-editor.component.mjs +132 -0
  10. package/esm2020/lib/builder/definition-builder.module.mjs +70 -0
  11. package/esm2020/lib/builder/models/builder-state.interface.mjs +5 -0
  12. package/esm2020/lib/builder/services/definition-builder.service.mjs +251 -0
  13. package/esm2020/lib/builder/services/definition-export.service.mjs +167 -0
  14. package/esm2020/lib/builder/services/definition-import.service.mjs +193 -0
  15. package/esm2020/lib/builder/services/sample-data-generator.service.mjs +126 -0
  16. package/esm2020/lib/builder/utils/config-validator.util.mjs +165 -0
  17. package/esm2020/lib/builder/utils/typescript-generator.util.mjs +206 -0
  18. package/esm2020/lib/editors/index.mjs +9 -0
  19. package/esm2020/lib/editors/nile-autocomplete-editor.mjs +228 -0
  20. package/esm2020/lib/editors/nile-calendar-editor.mjs +214 -0
  21. package/esm2020/lib/editors/nile-date-picker-editor.mjs +227 -0
  22. package/esm2020/lib/editors/nile-input-editor.mjs +235 -0
  23. package/esm2020/lib/editors/nile-select-editor.mjs +317 -0
  24. package/esm2020/lib/factories/column-config.factory.mjs +231 -0
  25. package/esm2020/lib/models/autosave-config.interface.mjs +8 -0
  26. package/esm2020/lib/models/base-column-config.class.mjs +253 -0
  27. package/esm2020/lib/models/cell-strategies.interface.mjs +6 -0
  28. package/esm2020/lib/models/cell-types.mjs +147 -0
  29. package/esm2020/lib/models/column-action.interface.mjs +6 -0
  30. package/esm2020/lib/models/column-config.interface.mjs +43 -0
  31. package/esm2020/lib/models/column-config.utils.mjs +101 -0
  32. package/esm2020/lib/models/row-action.interface.mjs +5 -0
  33. package/esm2020/lib/models/row-validator.interface.mjs +2 -0
  34. package/esm2020/lib/models/schema-validation.interface.mjs +2 -0
  35. package/esm2020/lib/models/sheet-action.interface.mjs +5 -0
  36. package/esm2020/lib/models/sheet-config.interface.mjs +5 -0
  37. package/esm2020/lib/models/table-config.interface.mjs +106 -0
  38. package/esm2020/lib/models/table-validator.interface.mjs +2 -0
  39. package/esm2020/lib/models/workbook-action.interface.mjs +5 -0
  40. package/esm2020/lib/models/workbook-config.interface.mjs +5 -0
  41. package/esm2020/lib/renderer/components/st-add-column-button/st-add-column-button.component.mjs +24 -0
  42. package/esm2020/lib/renderer/components/st-cell/st-cell.component.mjs +391 -0
  43. package/esm2020/lib/renderer/components/st-column-editor-modal/st-column-editor-modal.component.mjs +103 -0
  44. package/esm2020/lib/renderer/components/st-column-filter/st-column-filter.component.mjs +383 -0
  45. package/esm2020/lib/renderer/components/st-column-menu/st-column-menu.component.mjs +232 -0
  46. package/esm2020/lib/renderer/components/st-column-visibility/st-column-visibility.component.mjs +97 -0
  47. package/esm2020/lib/renderer/components/st-header/st-header.component.mjs +157 -0
  48. package/esm2020/lib/renderer/components/st-pagination/st-pagination.component.mjs +87 -0
  49. package/esm2020/lib/renderer/components/st-row-actions-dropdown/st-row-actions-dropdown.component.mjs +167 -0
  50. package/esm2020/lib/renderer/components/st-sheet/st-sheet.component.mjs +165 -0
  51. package/esm2020/lib/renderer/components/st-sheet-actions/st-sheet-actions.component.mjs +112 -0
  52. package/esm2020/lib/renderer/components/st-table/st-table.component.mjs +1246 -0
  53. package/esm2020/lib/renderer/components/st-table-actions/st-table-actions.component.mjs +171 -0
  54. package/esm2020/lib/renderer/components/st-workbook/st-workbook.component.mjs +489 -0
  55. package/esm2020/lib/renderer/directives/click-outside.directive.mjs +28 -0
  56. package/esm2020/lib/renderer/directives/st-column-resize.directive.mjs +108 -0
  57. package/esm2020/lib/renderer/directives/st-keyboard-navigation.directive.mjs +73 -0
  58. package/esm2020/lib/renderer/models/cell-state.interface.mjs +66 -0
  59. package/esm2020/lib/renderer/models/cell.class.mjs +389 -0
  60. package/esm2020/lib/renderer/models/row-validation-state.interface.mjs +7 -0
  61. package/esm2020/lib/renderer/models/sheet-state.class.mjs +90 -0
  62. package/esm2020/lib/renderer/models/sheet-state.interface.mjs +5 -0
  63. package/esm2020/lib/renderer/models/table-state.class.mjs +841 -0
  64. package/esm2020/lib/renderer/models/table-state.interface.mjs +5 -0
  65. package/esm2020/lib/renderer/models/table-types.mjs +29 -0
  66. package/esm2020/lib/renderer/models/table-validation-state.interface.mjs +7 -0
  67. package/esm2020/lib/renderer/models/workbook-state.class.mjs +174 -0
  68. package/esm2020/lib/renderer/models/workbook-state.interface.mjs +5 -0
  69. package/esm2020/lib/renderer/models/z-index.enum.mjs +55 -0
  70. package/esm2020/lib/schemas/table-config.schema.mjs +472 -0
  71. package/esm2020/lib/services/autosave.service.mjs +92 -0
  72. package/esm2020/lib/services/custom-validation-rules.util.mjs +124 -0
  73. package/esm2020/lib/services/json-schema-validator.service.mjs +216 -0
  74. package/esm2020/lib/services/row-validation.service.mjs +42 -0
  75. package/esm2020/lib/services/validation-logger.service.mjs +177 -0
  76. package/esm2020/lib/services/virtual-scroll.service.mjs +52 -0
  77. package/esm2020/lib/shared/shared-table-components.module.mjs +35 -0
  78. package/esm2020/lib/smart-table.module.mjs +124 -0
  79. package/esm2020/lib/strategies/default-editors.mjs +433 -0
  80. package/esm2020/lib/strategies/default-formatters.mjs +238 -0
  81. package/esm2020/lib/strategies/default-validators.mjs +327 -0
  82. package/esm2020/public-api.mjs +146 -0
  83. package/fesm2015/aquera-ngx-smart-table.mjs +11860 -0
  84. package/fesm2015/aquera-ngx-smart-table.mjs.map +1 -0
  85. package/fesm2020/aquera-ngx-smart-table.mjs +11897 -0
  86. package/fesm2020/aquera-ngx-smart-table.mjs.map +1 -0
  87. package/lib/builder/components/builder-preview/builder-preview.component.d.ts +31 -0
  88. package/lib/builder/components/builder-toolbar/builder-toolbar.component.d.ts +53 -0
  89. package/lib/builder/components/column-editor/column-editor.component.d.ts +69 -0
  90. package/lib/builder/components/column-list/column-list.component.d.ts +65 -0
  91. package/lib/builder/components/definition-builder/definition-builder.component.d.ts +58 -0
  92. package/lib/builder/components/table-config-editor/table-config-editor.component.d.ts +32 -0
  93. package/lib/builder/definition-builder.module.d.ts +15 -0
  94. package/lib/builder/models/builder-state.interface.d.ts +93 -0
  95. package/lib/builder/services/definition-builder.service.d.ts +80 -0
  96. package/lib/builder/services/definition-export.service.d.ts +59 -0
  97. package/lib/builder/services/definition-import.service.d.ts +31 -0
  98. package/lib/builder/services/sample-data-generator.service.d.ts +41 -0
  99. package/lib/builder/utils/config-validator.util.d.ts +32 -0
  100. package/lib/builder/utils/typescript-generator.util.d.ts +29 -0
  101. package/lib/editors/index.d.ts +8 -0
  102. package/lib/editors/nile-autocomplete-editor.d.ts +102 -0
  103. package/lib/editors/nile-calendar-editor.d.ts +89 -0
  104. package/lib/editors/nile-date-picker-editor.d.ts +95 -0
  105. package/lib/editors/nile-input-editor.d.ts +67 -0
  106. package/lib/editors/nile-select-editor.d.ts +109 -0
  107. package/lib/factories/column-config.factory.d.ts +73 -0
  108. package/lib/models/autosave-config.interface.d.ts +23 -0
  109. package/lib/models/base-column-config.class.d.ts +115 -0
  110. package/lib/models/cell-strategies.interface.d.ts +181 -0
  111. package/lib/models/cell-types.d.ts +337 -0
  112. package/lib/models/column-action.interface.d.ts +86 -0
  113. package/lib/models/column-config.interface.d.ts +272 -0
  114. package/lib/models/column-config.utils.d.ts +37 -0
  115. package/lib/models/row-action.interface.d.ts +86 -0
  116. package/lib/models/row-validator.interface.d.ts +37 -0
  117. package/lib/models/schema-validation.interface.d.ts +42 -0
  118. package/lib/models/sheet-action.interface.d.ts +59 -0
  119. package/lib/models/sheet-config.interface.d.ts +41 -0
  120. package/lib/models/table-config.interface.d.ts +245 -0
  121. package/lib/models/table-validator.interface.d.ts +40 -0
  122. package/lib/models/workbook-action.interface.d.ts +90 -0
  123. package/lib/models/workbook-config.interface.d.ts +107 -0
  124. package/lib/renderer/components/st-add-column-button/st-add-column-button.component.d.ts +9 -0
  125. package/lib/renderer/components/st-cell/st-cell.component.d.ts +69 -0
  126. package/lib/renderer/components/st-column-editor-modal/st-column-editor-modal.component.d.ts +39 -0
  127. package/lib/renderer/components/st-column-filter/st-column-filter.component.d.ts +139 -0
  128. package/lib/renderer/components/st-column-menu/st-column-menu.component.d.ts +81 -0
  129. package/lib/renderer/components/st-column-visibility/st-column-visibility.component.d.ts +44 -0
  130. package/lib/renderer/components/st-header/st-header.component.d.ts +93 -0
  131. package/lib/renderer/components/st-pagination/st-pagination.component.d.ts +42 -0
  132. package/lib/renderer/components/st-row-actions-dropdown/st-row-actions-dropdown.component.d.ts +67 -0
  133. package/lib/renderer/components/st-sheet/st-sheet.component.d.ts +98 -0
  134. package/lib/renderer/components/st-sheet-actions/st-sheet-actions.component.d.ts +58 -0
  135. package/lib/renderer/components/st-table/st-table.component.d.ts +349 -0
  136. package/lib/renderer/components/st-table-actions/st-table-actions.component.d.ts +77 -0
  137. package/lib/renderer/components/st-workbook/st-workbook.component.d.ts +235 -0
  138. package/lib/renderer/directives/click-outside.directive.d.ts +10 -0
  139. package/lib/renderer/directives/st-column-resize.directive.d.ts +44 -0
  140. package/lib/renderer/directives/st-keyboard-navigation.directive.d.ts +15 -0
  141. package/lib/renderer/models/cell-state.interface.d.ts +118 -0
  142. package/lib/renderer/models/cell.class.d.ts +174 -0
  143. package/lib/renderer/models/row-validation-state.interface.d.ts +27 -0
  144. package/lib/renderer/models/sheet-state.class.d.ts +67 -0
  145. package/lib/renderer/models/sheet-state.interface.d.ts +55 -0
  146. package/lib/renderer/models/table-state.class.d.ts +313 -0
  147. package/lib/renderer/models/table-state.interface.d.ts +18 -0
  148. package/lib/renderer/models/table-types.d.ts +228 -0
  149. package/lib/renderer/models/table-validation-state.interface.d.ts +34 -0
  150. package/lib/renderer/models/workbook-state.class.d.ts +117 -0
  151. package/lib/renderer/models/workbook-state.interface.d.ts +71 -0
  152. package/lib/renderer/models/z-index.enum.d.ts +44 -0
  153. package/lib/schemas/table-config.schema.d.ts +455 -0
  154. package/lib/services/autosave.service.d.ts +73 -0
  155. package/lib/services/custom-validation-rules.util.d.ts +12 -0
  156. package/lib/services/json-schema-validator.service.d.ts +49 -0
  157. package/lib/services/row-validation.service.d.ts +17 -0
  158. package/lib/services/validation-logger.service.d.ts +87 -0
  159. package/lib/services/virtual-scroll.service.d.ts +44 -0
  160. package/lib/shared/shared-table-components.module.d.ts +9 -0
  161. package/lib/smart-table.module.d.ts +26 -0
  162. package/lib/strategies/default-editors.d.ts +109 -0
  163. package/lib/strategies/default-formatters.d.ts +116 -0
  164. package/lib/strategies/default-validators.d.ts +113 -0
  165. package/package.json +42 -0
  166. package/public-api.d.ts +70 -0
  167. package/src/lib/builder/README.md +30 -0
  168. package/src/lib/editors/README.md +303 -0
  169. package/src/lib/renderer/components/st-column-filter/README.md +286 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Table state interfaces for configuration and initialization
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RhdGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtdGFibGUvc3JjL2xpYi9yZW5kZXJlci9tb2RlbHMvdGFibGUtc3RhdGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUYWJsZSBzdGF0ZSBpbnRlcmZhY2VzIGZvciBjb25maWd1cmF0aW9uIGFuZCBpbml0aWFsaXphdGlvblxuICovXG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpbml0aWFsaXppbmcgVGFibGVTdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3RhdGVDb25maWcge1xuICAvKipcbiAgICogSW5pdGlhbCBwYWdlIG51bWJlciAoMC1pbmRleGVkKVxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBpbml0aWFsUGFnZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlXG4gICAqIEBkZWZhdWx0IDI1XG4gICAqL1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuIl19
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Table types and enumerations for state management
3
+ */
4
+ /**
5
+ * Sort direction for columns
6
+ */
7
+ export var SortDirection;
8
+ (function (SortDirection) {
9
+ SortDirection["NONE"] = "none";
10
+ SortDirection["ASC"] = "asc";
11
+ SortDirection["DESC"] = "desc";
12
+ })(SortDirection || (SortDirection = {}));
13
+ /**
14
+ * Filter operators for column filtering
15
+ */
16
+ export var FilterOperator;
17
+ (function (FilterOperator) {
18
+ FilterOperator["EQUALS"] = "equals";
19
+ FilterOperator["CONTAINS"] = "contains";
20
+ FilterOperator["STARTS_WITH"] = "startsWith";
21
+ FilterOperator["ENDS_WITH"] = "endsWith";
22
+ FilterOperator["GT"] = "gt";
23
+ FilterOperator["LT"] = "lt";
24
+ FilterOperator["GTE"] = "gte";
25
+ FilterOperator["LTE"] = "lte";
26
+ FilterOperator["BETWEEN"] = "between";
27
+ FilterOperator["IN"] = "in";
28
+ })(FilterOperator || (FilterOperator = {}));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC10YWJsZS9zcmMvbGliL3JlbmRlcmVyL21vZGVscy90YWJsZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlIOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsNEJBQVcsQ0FBQTtJQUNYLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7SUFDakIsdUNBQXFCLENBQUE7SUFDckIsNENBQTBCLENBQUE7SUFDMUIsd0NBQXNCLENBQUE7SUFDdEIsMkJBQVMsQ0FBQTtJQUNULDJCQUFTLENBQUE7SUFDVCw2QkFBVyxDQUFBO0lBQ1gsNkJBQVcsQ0FBQTtJQUNYLHFDQUFtQixDQUFBO0lBQ25CLDJCQUFTLENBQUE7QUFDWCxDQUFDLEVBWFcsY0FBYyxLQUFkLGNBQWMsUUFXekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRhYmxlIHR5cGVzIGFuZCBlbnVtZXJhdGlvbnMgZm9yIHN0YXRlIG1hbmFnZW1lbnRcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9jb2x1bW4tY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogU29ydCBkaXJlY3Rpb24gZm9yIGNvbHVtbnNcbiAqL1xuZXhwb3J0IGVudW0gU29ydERpcmVjdGlvbiB7XG4gIE5PTkUgPSAnbm9uZScsXG4gIEFTQyA9ICdhc2MnLFxuICBERVNDID0gJ2Rlc2MnXG59XG5cbi8qKlxuICogRmlsdGVyIG9wZXJhdG9ycyBmb3IgY29sdW1uIGZpbHRlcmluZ1xuICovXG5leHBvcnQgZW51bSBGaWx0ZXJPcGVyYXRvciB7XG4gIEVRVUFMUyA9ICdlcXVhbHMnLFxuICBDT05UQUlOUyA9ICdjb250YWlucycsXG4gIFNUQVJUU19XSVRIID0gJ3N0YXJ0c1dpdGgnLFxuICBFTkRTX1dJVEggPSAnZW5kc1dpdGgnLFxuICBHVCA9ICdndCcsICAgICAgICAgICAgICAgICAgICAvLyBHcmVhdGVyIHRoYW5cbiAgTFQgPSAnbHQnLCAgICAgICAgICAgICAgICAgICAgLy8gTGVzcyB0aGFuXG4gIEdURSA9ICdndGUnLCAgICAgICAgICAgICAgICAgIC8vIEdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICBMVEUgPSAnbHRlJywgICAgICAgICAgICAgICAgICAvLyBMZXNzIHRoYW4gb3IgZXF1YWxcbiAgQkVUV0VFTiA9ICdiZXR3ZWVuJyxcbiAgSU4gPSAnaW4nXG59XG5cbi8qKlxuICogUGFnaW5hdGlvbiBzdGF0ZSBmb3IgdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uU3RhdGUge1xuICBjdXJyZW50UGFnZTogbnVtYmVyOyAgICAgIC8vIDAtaW5kZXhlZFxuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTb3J0IHN0YXRlIGZvciBhIGNvbHVtblxuICogQ29udGFpbnMgZnVsbCBpbmZvcm1hdGlvbiBhYm91dCBhbiBhY3RpdmUgc29ydCBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Tb3J0U3RhdGUge1xuICBjb2x1bW5LZXk6IHN0cmluZztcbiAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xuICBwcmlvcml0eT86IG51bWJlcjsgIC8vIEZvciBtdWx0aS1jb2x1bW4gc29ydCAoMCA9IHByaW1hcnksIDEgPSBzZWNvbmRhcnksIGV0Yy4pXG59XG5cbi8qKlxuICogRmlsdGVyIHN0YXRlIGZvciBhIGNvbHVtblxuICogQ29udGFpbnMgZnVsbCBpbmZvcm1hdGlvbiBhYm91dCBhbiBhY3RpdmUgZmlsdGVyIG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkZpbHRlclN0YXRlIHtcbiAgY29sdW1uS2V5OiBzdHJpbmc7XG4gIG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcjtcbiAgdmFsdWU6IGFueTtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDZWxsIGZvY3VzIHBvc2l0aW9uIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEZvY3VzUG9zaXRpb24ge1xuICByb3dJbmRleDogbnVtYmVyO1xuICBjb2x1bW5JbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRhYmxlIHN0YXRlIGNoYW5nZSBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3RhdGVDaGFuZ2VFdmVudCB7XG4gIHR5cGU6ICdwYWdpbmF0aW9uJyB8ICdzb3J0aW5nJyB8ICdmaWx0ZXJpbmcnIHwgJ2NvbHVtbi1jb25maWcnIHwgJ2NvbHVtbi12aXNpYmlsaXR5JyB8ICdjZWxsLWZvY3VzJyB8ICdjZWxsLWVkaXQtc3RhcnQnIHwgJ2NlbGwtZWRpdC1lbmQnO1xuICBzdGF0ZTogVGFibGVTdGF0ZVNuYXBzaG90O1xuICBmb2N1c1Bvc2l0aW9uPzogQ2VsbEZvY3VzUG9zaXRpb247XG4gIGVkaXRpbmdQb3NpdGlvbj86IENlbGxGb2N1c1Bvc2l0aW9uO1xufVxuXG4vKipcbiAqIFNuYXBzaG90IG9mIGN1cnJlbnQgdGFibGUgc3RhdGVcbiAqIENvbnRhaW5zIGNvbXBsZXRlIHN0YXRlIGluZm9ybWF0aW9uIGZvciBzb3J0aW5nLCBmaWx0ZXJpbmcsIGFuZCBwYWdpbmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTdGF0ZVNuYXBzaG90IHtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvblN0YXRlO1xuICBzb3J0ZWRDb2x1bW5zOiBDb2x1bW5Tb3J0U3RhdGVbXTsgICAgICAvLyBBcnJheSBvZiBjb2x1bW5zIHdpdGggYWN0aXZlIHNvcnRzXG4gIGZpbHRlcmVkQ29sdW1uczogQ29sdW1uRmlsdGVyU3RhdGVbXTsgIC8vIEFycmF5IG9mIGNvbHVtbnMgd2l0aCBhY3RpdmUgZmlsdGVyc1xufVxuXG4vKipcbiAqIENvbHVtbiByZXNpemUgZXZlbnRcbiAqIEVtaXR0ZWQgd2hlbiBhIGNvbHVtbiBpcyByZXNpemVkIGJ5IHRoZSB1c2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUmVzaXplRXZlbnQge1xuICAvKipcbiAgICogS2V5IG9mIHRoZSByZXNpemVkIGNvbHVtblxuICAgKi9cbiAgY29sdW1uS2V5OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogUHJldmlvdXMgd2lkdGggYmVmb3JlIHJlc2l6ZVxuICAgKi9cbiAgb2xkV2lkdGg6IG51bWJlcjtcbiAgXG4gIC8qKlxuICAgKiBOZXcgd2lkdGggYWZ0ZXIgcmVzaXplXG4gICAqL1xuICBuZXdXaWR0aDogbnVtYmVyO1xuICBcbiAgLyoqXG4gICAqIFRoZSBjb2x1bW4gY29uZmlndXJhdGlvblxuICAgKi9cbiAgY29sdW1uOiBDb2x1bW5Db25maWc7XG59XG5cbi8qKlxuICogQ29sdW1uIHNvcnQgdG9nZ2xlIGV2ZW50XG4gKiBFbWl0dGVkIHdoZW4gYSBjb2x1bW4ncyBzb3J0IGRpcmVjdGlvbiBpcyBjaGFuZ2VkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uU29ydEV2ZW50IHtcbiAgLyoqXG4gICAqIEtleSBvZiB0aGUgc29ydGVkIGNvbHVtblxuICAgKi9cbiAgY29sdW1uS2V5OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogTmV3IHNvcnQgZGlyZWN0aW9uXG4gICAqL1xuICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG4gIFxuICAvKipcbiAgICogUHJldmlvdXMgc29ydCBkaXJlY3Rpb25cbiAgICovXG4gIHByZXZpb3VzRGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xuICBcbiAgLyoqXG4gICAqIFRoZSBjb2x1bW4gY29uZmlndXJhdGlvblxuICAgKi9cbiAgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gIFxuICAvKipcbiAgICogQ3VycmVudCB0YWJsZSBzdGF0ZSBzbmFwc2hvdFxuICAgKi9cbiAgdGFibGVTdGF0ZTogVGFibGVTdGF0ZVNuYXBzaG90O1xufVxuXG4vKipcbiAqIENvbHVtbiBmaWx0ZXIgY2hhbmdlIGV2ZW50XG4gKiBFbWl0dGVkIHdoZW4gYSBjb2x1bW4gZmlsdGVyIGlzIG1vZGlmaWVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRmlsdGVyRXZlbnQge1xuICAvKipcbiAgICogS2V5IG9mIHRoZSBmaWx0ZXJlZCBjb2x1bW5cbiAgICovXG4gIGNvbHVtbktleTogc3RyaW5nO1xuICBcbiAgLyoqXG4gICAqIEZpbHRlciBvcGVyYXRvclxuICAgKi9cbiAgb3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yO1xuICBcbiAgLyoqXG4gICAqIEZpbHRlciB2YWx1ZVxuICAgKi9cbiAgdmFsdWU6IGFueTtcbiAgXG4gIC8qKlxuICAgKiBQcmV2aW91cyBmaWx0ZXIgdmFsdWVcbiAgICovXG4gIHByZXZpb3VzVmFsdWU/OiBhbnk7XG4gIFxuICAvKipcbiAgICogV2hldGhlciBmaWx0ZXIgaXMgZW5hYmxlZFxuICAgKi9cbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgXG4gIC8qKlxuICAgKiBUaGUgY29sdW1uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xuICBcbiAgLyoqXG4gICAqIEN1cnJlbnQgdGFibGUgc3RhdGUgc25hcHNob3RcbiAgICovXG4gIHRhYmxlU3RhdGU6IFRhYmxlU3RhdGVTbmFwc2hvdDtcbn1cblxuLyoqXG4gKiBDb2x1bW4gbW92ZWQgZXZlbnRcbiAqIEVtaXR0ZWQgd2hlbiBhIGNvbHVtbiBpcyByZW9yZGVyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Nb3ZlRXZlbnQge1xuICAvKipcbiAgICogS2V5IG9mIHRoZSBtb3ZlZCBjb2x1bW5cbiAgICovXG4gIGNvbHVtbktleTogc3RyaW5nO1xuICBcbiAgLyoqXG4gICAqIERpcmVjdGlvbiBvZiBtb3ZlbWVudFxuICAgKi9cbiAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xuICBcbiAgLyoqXG4gICAqIE9yaWdpbmFsIGNvbHVtbiBpbmRleFxuICAgKi9cbiAgb2xkSW5kZXg6IG51bWJlcjtcbiAgXG4gIC8qKlxuICAgKiBOZXcgY29sdW1uIGluZGV4IGFmdGVyIG1vdmVcbiAgICovXG4gIG5ld0luZGV4OiBudW1iZXI7XG4gIFxuICAvKipcbiAgICogVGhlIGNvbHVtbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBjb2x1bW46IENvbHVtbkNvbmZpZztcbn1cblxuLyoqXG4gKiBDb2x1bW4gYWRkZWQgZXZlbnRcbiAqIEVtaXR0ZWQgd2hlbiBhIG5ldyBjb2x1bW4gaXMgYWRkZWQgdG8gdGhlIHRhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uQWRkRXZlbnQge1xuICAvKipcbiAgICogVGhlIG5ld2x5IGFkZGVkIGNvbHVtbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBjb2x1bW46IENvbHVtbkNvbmZpZztcbiAgXG4gIC8qKlxuICAgKiBJbmRleCB3aGVyZSBjb2x1bW4gd2FzIGFkZGVkXG4gICAqL1xuICBpbmRleDogbnVtYmVyO1xuICBcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGFmdGVyIGFkZGl0aW9uXG4gICAqL1xuICB0b3RhbENvbHVtbnM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBEYXRhIGNoYW5nZSBldmVudFxuICogRW1pdHRlZCB3aGVuIHRhYmxlIGRhdGEgaXMgdXBkYXRlZCAodmlhIHN5bmMgb3IgYXN5bmMgaW5wdXQpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUNoYW5nZUV2ZW50IHtcbiAgLyoqXG4gICAqIFByZXZpb3VzIGRhdGEgYXJyYXkgcmVmZXJlbmNlXG4gICAqL1xuICBwcmV2aW91c0RhdGE6IGFueVtdO1xuICBcbiAgLyoqXG4gICAqIEN1cnJlbnQgZGF0YSBhcnJheSByZWZlcmVuY2VcbiAgICovXG4gIGN1cnJlbnREYXRhOiBhbnlbXTtcbiAgXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiBjaGFuZ2Ugb2NjdXJyZWRcbiAgICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBcbiAgLyoqXG4gICAqIFNvdXJjZSBvZiB0aGUgZGF0YSBjaGFuZ2VcbiAgICovXG4gIHNvdXJjZTogJ3N5bmMnIHwgJ2FzeW5jJztcbn1cblxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Table validation state interface
3
+ * Aggregates validation results from all rows in the table
4
+ * Note: Only invalid rows are stored in rowStates - absence means row is valid
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdmFsaWRhdGlvbi1zdGF0ZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC10YWJsZS9zcmMvbGliL3JlbmRlcmVyL21vZGVscy90YWJsZS12YWxpZGF0aW9uLXN0YXRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUYWJsZSB2YWxpZGF0aW9uIHN0YXRlIGludGVyZmFjZVxuICogQWdncmVnYXRlcyB2YWxpZGF0aW9uIHJlc3VsdHMgZnJvbSBhbGwgcm93cyBpbiB0aGUgdGFibGVcbiAqIE5vdGU6IE9ubHkgaW52YWxpZCByb3dzIGFyZSBzdG9yZWQgaW4gcm93U3RhdGVzIC0gYWJzZW5jZSBtZWFucyByb3cgaXMgdmFsaWRcbiAqL1xuXG5pbXBvcnQgeyBSb3dWYWxpZGF0aW9uU3RhdGUgfSBmcm9tICcuL3Jvdy12YWxpZGF0aW9uLXN0YXRlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVWYWxpZGF0aW9uU3RhdGUge1xuICAvKipcbiAgICogV2hldGhlciBhbGwgcm93cyBpbiB0aGUgdGFibGUgYXJlIHZhbGlkXG4gICAqIFRydWUgd2hlbiByb3dTdGF0ZXMgaXMgZW1wdHkgKG5vIGludmFsaWQgcm93cylcbiAgICovXG4gIGlzVmFsaWQ6IGJvb2xlYW47XG4gIFxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlXG4gICAqL1xuICB0b3RhbFJvd3M6IG51bWJlcjtcbiAgXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgdmFsaWQgcm93cyAoY2FsY3VsYXRlZCBhcyB0b3RhbFJvd3MgLSBpbnZhbGlkUm93cylcbiAgICovXG4gIHZhbGlkUm93czogbnVtYmVyO1xuICBcbiAgLyoqXG4gICAqIE51bWJlciBvZiBpbnZhbGlkIHJvd3MgKHNpemUgb2Ygcm93U3RhdGVzIG1hcClcbiAgICovXG4gIGludmFsaWRSb3dzOiBudW1iZXI7XG4gIFxuICAvKipcbiAgICogTWFwIG9mIHJvdyBpbmRpY2VzIHRvIHRoZWlyIHZhbGlkYXRpb24gc3RhdGVzXG4gICAqIE9ubHkgY29udGFpbnMgSU5WQUxJRCByb3dzIC0gaWYgYSByb3cgaXMgbm90IGluIHRoaXMgbWFwLCBpdCdzIHZhbGlkXG4gICAqL1xuICByb3dTdGF0ZXM6IE1hcDxudW1iZXIsIFJvd1ZhbGlkYXRpb25TdGF0ZT47XG4gIFxuICAvKipcbiAgICogVGltZXN0YW1wIG9mIHRoZSBsYXN0IHZhbGlkYXRpb24gc3RhdGUgdXBkYXRlXG4gICAqL1xuICBsYXN0VXBkYXRlZDogRGF0ZTtcbn1cblxuIl19
@@ -0,0 +1,174 @@
1
+ /**
2
+ * WorkbookState - Reactive state management for workbook operations
3
+ * Manages multiple sheet states and workbook-level state
4
+ */
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { TableState } from './table-state.class';
7
+ /**
8
+ * WorkbookState class - Manages workbook-level state and sheet TableStates
9
+ */
10
+ export class WorkbookState {
11
+ /**
12
+ * Constructor
13
+ * @param config Workbook state configuration
14
+ */
15
+ constructor(config) {
16
+ this.id = config.id;
17
+ this.name$ = new BehaviorSubject(config.name);
18
+ // Initialize sheet states map
19
+ this._sheetTableStates = new Map();
20
+ // Initialize active sheet index
21
+ this._activeSheetIndex$ = new BehaviorSubject(config.initialActiveSheetIndex || 0);
22
+ this.activeSheetIndex$ = this._activeSheetIndex$.asObservable();
23
+ // Initialize fullscreen state
24
+ this._isFullscreen$ = new BehaviorSubject(false);
25
+ this.isFullscreen$ = this._isFullscreen$.asObservable();
26
+ // Initialize metadata
27
+ const now = new Date();
28
+ this._metadata$ = new BehaviorSubject({
29
+ createdAt: now,
30
+ lastModified: now,
31
+ lastAccessed: now,
32
+ sheetCount: 0
33
+ });
34
+ this.metadata$ = this._metadata$.asObservable();
35
+ }
36
+ /**
37
+ * Get or create TableState for a sheet
38
+ * @param sheetId Sheet ID
39
+ * @param columns Column configurations for the sheet
40
+ * @param tableStateConfig Optional table state configuration
41
+ * @returns TableState instance for the sheet
42
+ */
43
+ getSheetTableState(sheetId, columns, tableStateConfig) {
44
+ if (!this._sheetTableStates.has(sheetId)) {
45
+ // Create new TableState for this sheet
46
+ const tableState = new TableState(columns, tableStateConfig);
47
+ this._sheetTableStates.set(sheetId, tableState);
48
+ this.updateSheetCount();
49
+ }
50
+ return this._sheetTableStates.get(sheetId);
51
+ }
52
+ /**
53
+ * Set TableState for a sheet (useful for lazy initialization)
54
+ * @param sheetId Sheet ID
55
+ * @param tableState TableState instance to set
56
+ */
57
+ setSheetTableState(sheetId, tableState) {
58
+ this._sheetTableStates.set(sheetId, tableState);
59
+ this.updateSheetCount();
60
+ this.updateLastModified();
61
+ }
62
+ /**
63
+ * Remove TableState for a sheet
64
+ * @param sheetId Sheet ID to remove
65
+ */
66
+ removeSheetTableState(sheetId) {
67
+ this._sheetTableStates.delete(sheetId);
68
+ this.updateSheetCount();
69
+ this.updateLastModified();
70
+ }
71
+ /**
72
+ * Set active sheet index
73
+ * @param index Sheet index (0-based)
74
+ */
75
+ setActiveSheetIndex(index) {
76
+ this._activeSheetIndex$.next(index);
77
+ this.updateLastAccessed();
78
+ }
79
+ /**
80
+ * Get current active sheet index
81
+ */
82
+ getActiveSheetIndex() {
83
+ return this._activeSheetIndex$.value;
84
+ }
85
+ /**
86
+ * Toggle fullscreen mode
87
+ */
88
+ toggleFullscreen() {
89
+ const current = this._isFullscreen$.value;
90
+ this._isFullscreen$.next(!current);
91
+ }
92
+ /**
93
+ * Set fullscreen mode
94
+ * @param fullscreen Fullscreen state
95
+ */
96
+ setFullscreen(fullscreen) {
97
+ this._isFullscreen$.next(fullscreen);
98
+ }
99
+ /**
100
+ * Get current fullscreen state
101
+ */
102
+ isFullscreen() {
103
+ return this._isFullscreen$.value;
104
+ }
105
+ /**
106
+ * Update workbook name
107
+ * @param name New workbook name
108
+ */
109
+ updateName(name) {
110
+ this.name$.next(name);
111
+ this.updateLastModified();
112
+ }
113
+ /**
114
+ * Get current workbook name
115
+ */
116
+ getName() {
117
+ return this.name$.value;
118
+ }
119
+ /**
120
+ * Get complete state snapshot
121
+ */
122
+ getSnapshot() {
123
+ const sheetTableStates = new Map();
124
+ // Build map of sheet states
125
+ this._sheetTableStates.forEach((tableState, sheetId) => {
126
+ sheetTableStates.set(sheetId, tableState.getState());
127
+ });
128
+ return {
129
+ id: this.id,
130
+ name: this.name$.value,
131
+ activeSheetIndex: this._activeSheetIndex$.value,
132
+ isFullscreen: this._isFullscreen$.value,
133
+ sheetTableStates,
134
+ metadata: this._metadata$.value
135
+ };
136
+ }
137
+ /**
138
+ * Update last accessed timestamp
139
+ */
140
+ updateLastAccessed() {
141
+ const currentMetadata = this._metadata$.value;
142
+ this._metadata$.next({
143
+ ...currentMetadata,
144
+ lastAccessed: new Date()
145
+ });
146
+ }
147
+ /**
148
+ * Update last modified timestamp
149
+ */
150
+ updateLastModified() {
151
+ const currentMetadata = this._metadata$.value;
152
+ this._metadata$.next({
153
+ ...currentMetadata,
154
+ lastModified: new Date()
155
+ });
156
+ }
157
+ /**
158
+ * Update sheet count in metadata
159
+ */
160
+ updateSheetCount() {
161
+ const currentMetadata = this._metadata$.value;
162
+ this._metadata$.next({
163
+ ...currentMetadata,
164
+ sheetCount: this._sheetTableStates.size
165
+ });
166
+ }
167
+ /**
168
+ * Get current metadata
169
+ */
170
+ getMetadata() {
171
+ return this._metadata$.value;
172
+ }
173
+ }
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Jvb2stc3RhdGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC10YWJsZS9zcmMvbGliL3JlbmRlcmVyL21vZGVscy93b3JrYm9vay1zdGF0ZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtqRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBbUN4Qjs7O09BR0c7SUFDSCxZQUFZLE1BQTJCO1FBQ3JDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksZUFBZSxDQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1FBRXZELGdDQUFnQztRQUNoQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVMsTUFBTSxDQUFDLHVCQUF1QixJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFaEUsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXhELHNCQUFzQjtRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQW1C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O0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV29ya2Jvb2tTdGF0ZSAtIFJlYWN0aXZlIHN0YXRlIG1hbmFnZW1lbnQgZm9yIHdvcmtib29rIG9wZXJhdGlvbnNcbiAqIE1hbmFnZXMgbXVsdGlwbGUgc2hlZXQgc3RhdGVzIGFuZCB3b3JrYm9vay1sZXZlbCBzdGF0ZVxuICovXG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4vdGFibGUtc3RhdGUuY2xhc3MnO1xuaW1wb3J0IHsgV29ya2Jvb2tTdGF0ZUNvbmZpZywgV29ya2Jvb2tNZXRhZGF0YSwgV29ya2Jvb2tTdGF0ZVNuYXBzaG90IH0gZnJvbSAnLi93b3JrYm9vay1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbHVtbi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlU3RhdGVDb25maWcgfSBmcm9tICcuL3RhYmxlLXN0YXRlLmludGVyZmFjZSc7XG5cbi8qKlxuICogV29ya2Jvb2tTdGF0ZSBjbGFzcyAtIE1hbmFnZXMgd29ya2Jvb2stbGV2ZWwgc3RhdGUgYW5kIHNoZWV0IFRhYmxlU3RhdGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrYm9va1N0YXRlIHtcbiAgLyoqXG4gICAqIFdvcmtib29rIGlkZW50aXR5XG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdvcmtib29rIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPjtcblxuICAvKipcbiAgICogTWFwIG9mIFRhYmxlU3RhdGUgaW5zdGFuY2VzIChvbmUgcGVyIHNoZWV0KVxuICAgKiBLZXk6IHNoZWV0SWQsIFZhbHVlOiBUYWJsZVN0YXRlXG4gICAqL1xuICBwcml2YXRlIF9zaGVldFRhYmxlU3RhdGVzOiBNYXA8c3RyaW5nLCBUYWJsZVN0YXRlPjtcblxuICAvKipcbiAgICogQWN0aXZlIHNoZWV0IHRyYWNraW5nXG4gICAqL1xuICBwcml2YXRlIF9hY3RpdmVTaGVldEluZGV4JDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gIHJlYWRvbmx5IGFjdGl2ZVNoZWV0SW5kZXgkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIEZ1bGxzY3JlZW4gc3RhdGVcbiAgICovXG4gIHByaXZhdGUgX2lzRnVsbHNjcmVlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcmVhZG9ubHkgaXNGdWxsc2NyZWVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogV29ya2Jvb2sgbWV0YWRhdGFcbiAgICovXG4gIHByaXZhdGUgX21ldGFkYXRhJDogQmVoYXZpb3JTdWJqZWN0PFdvcmtib29rTWV0YWRhdGE+O1xuICByZWFkb25seSBtZXRhZGF0YSQ6IE9ic2VydmFibGU8V29ya2Jvb2tNZXRhZGF0YT47XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBjb25maWcgV29ya2Jvb2sgc3RhdGUgY29uZmlndXJhdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnOiBXb3JrYm9va1N0YXRlQ29uZmlnKSB7XG4gICAgdGhpcy5pZCA9IGNvbmZpZy5pZDtcbiAgICB0aGlzLm5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KGNvbmZpZy5uYW1lKTtcblxuICAgIC8vIEluaXRpYWxpemUgc2hlZXQgc3RhdGVzIG1hcFxuICAgIHRoaXMuX3NoZWV0VGFibGVTdGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgVGFibGVTdGF0ZT4oKTtcblxuICAgIC8vIEluaXRpYWxpemUgYWN0aXZlIHNoZWV0IGluZGV4XG4gICAgdGhpcy5fYWN0aXZlU2hlZXRJbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oY29uZmlnLmluaXRpYWxBY3RpdmVTaGVldEluZGV4IHx8IDApO1xuICAgIHRoaXMuYWN0aXZlU2hlZXRJbmRleCQgPSB0aGlzLl9hY3RpdmVTaGVldEluZGV4JC5hc09ic2VydmFibGUoKTtcblxuICAgIC8vIEluaXRpYWxpemUgZnVsbHNjcmVlbiBzdGF0ZVxuICAgIHRoaXMuX2lzRnVsbHNjcmVlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aGlzLmlzRnVsbHNjcmVlbiQgPSB0aGlzLl9pc0Z1bGxzY3JlZW4kLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBtZXRhZGF0YVxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5fbWV0YWRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXb3JrYm9va01ldGFkYXRhPih7XG4gICAgICBjcmVhdGVkQXQ6IG5vdyxcbiAgICAgIGxhc3RNb2RpZmllZDogbm93LFxuICAgICAgbGFzdEFjY2Vzc2VkOiBub3csXG4gICAgICBzaGVldENvdW50OiAwXG4gICAgfSk7XG4gICAgdGhpcy5tZXRhZGF0YSQgPSB0aGlzLl9tZXRhZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9yIGNyZWF0ZSBUYWJsZVN0YXRlIGZvciBhIHNoZWV0XG4gICAqIEBwYXJhbSBzaGVldElkIFNoZWV0IElEXG4gICAqIEBwYXJhbSBjb2x1bW5zIENvbHVtbiBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHNoZWV0XG4gICAqIEBwYXJhbSB0YWJsZVN0YXRlQ29uZmlnIE9wdGlvbmFsIHRhYmxlIHN0YXRlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgVGFibGVTdGF0ZSBpbnN0YW5jZSBmb3IgdGhlIHNoZWV0XG4gICAqL1xuICBnZXRTaGVldFRhYmxlU3RhdGUoXG4gICAgc2hlZXRJZDogc3RyaW5nLFxuICAgIGNvbHVtbnM6IENvbHVtbkNvbmZpZzxhbnk+W10sXG4gICAgdGFibGVTdGF0ZUNvbmZpZz86IFRhYmxlU3RhdGVDb25maWdcbiAgKTogVGFibGVTdGF0ZSB7XG4gICAgaWYgKCF0aGlzLl9zaGVldFRhYmxlU3RhdGVzLmhhcyhzaGVldElkKSkge1xuICAgICAgLy8gQ3JlYXRlIG5ldyBUYWJsZVN0YXRlIGZvciB0aGlzIHNoZWV0XG4gICAgICBjb25zdCB0YWJsZVN0YXRlID0gbmV3IFRhYmxlU3RhdGUoY29sdW1ucywgdGFibGVTdGF0ZUNvbmZpZyk7XG4gICAgICB0aGlzLl9zaGVldFRhYmxlU3RhdGVzLnNldChzaGVldElkLCB0YWJsZVN0YXRlKTtcbiAgICAgIHRoaXMudXBkYXRlU2hlZXRDb3VudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2hlZXRUYWJsZVN0YXRlcy5nZXQoc2hlZXRJZCkhO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBUYWJsZVN0YXRlIGZvciBhIHNoZWV0ICh1c2VmdWwgZm9yIGxhenkgaW5pdGlhbGl6YXRpb24pXG4gICAqIEBwYXJhbSBzaGVldElkIFNoZWV0IElEXG4gICAqIEBwYXJhbSB0YWJsZVN0YXRlIFRhYmxlU3RhdGUgaW5zdGFuY2UgdG8gc2V0XG4gICAqL1xuICBzZXRTaGVldFRhYmxlU3RhdGUoc2hlZXRJZDogc3RyaW5nLCB0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5fc2hlZXRUYWJsZVN0YXRlcy5zZXQoc2hlZXRJZCwgdGFibGVTdGF0ZSk7XG4gICAgdGhpcy51cGRhdGVTaGVldENvdW50KCk7XG4gICAgdGhpcy51cGRhdGVMYXN0TW9kaWZpZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgVGFibGVTdGF0ZSBmb3IgYSBzaGVldFxuICAgKiBAcGFyYW0gc2hlZXRJZCBTaGVldCBJRCB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZVNoZWV0VGFibGVTdGF0ZShzaGVldElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zaGVldFRhYmxlU3RhdGVzLmRlbGV0ZShzaGVldElkKTtcbiAgICB0aGlzLnVwZGF0ZVNoZWV0Q291bnQoKTtcbiAgICB0aGlzLnVwZGF0ZUxhc3RNb2RpZmllZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhY3RpdmUgc2hlZXQgaW5kZXhcbiAgICogQHBhcmFtIGluZGV4IFNoZWV0IGluZGV4ICgwLWJhc2VkKVxuICAgKi9cbiAgc2V0QWN0aXZlU2hlZXRJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlU2hlZXRJbmRleCQubmV4dChpbmRleCk7XG4gICAgdGhpcy51cGRhdGVMYXN0QWNjZXNzZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBhY3RpdmUgc2hlZXQgaW5kZXhcbiAgICovXG4gIGdldEFjdGl2ZVNoZWV0SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2hlZXRJbmRleCQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGZ1bGxzY3JlZW4gbW9kZVxuICAgKi9cbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5faXNGdWxsc2NyZWVuJC52YWx1ZTtcbiAgICB0aGlzLl9pc0Z1bGxzY3JlZW4kLm5leHQoIWN1cnJlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBmdWxsc2NyZWVuIG1vZGVcbiAgICogQHBhcmFtIGZ1bGxzY3JlZW4gRnVsbHNjcmVlbiBzdGF0ZVxuICAgKi9cbiAgc2V0RnVsbHNjcmVlbihmdWxsc2NyZWVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faXNGdWxsc2NyZWVuJC5uZXh0KGZ1bGxzY3JlZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IGZ1bGxzY3JlZW4gc3RhdGVcbiAgICovXG4gIGlzRnVsbHNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNGdWxsc2NyZWVuJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgd29ya2Jvb2sgbmFtZVxuICAgKiBAcGFyYW0gbmFtZSBOZXcgd29ya2Jvb2sgbmFtZVxuICAgKi9cbiAgdXBkYXRlTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5hbWUkLm5leHQobmFtZSk7XG4gICAgdGhpcy51cGRhdGVMYXN0TW9kaWZpZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCB3b3JrYm9vayBuYW1lXG4gICAqL1xuICBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbXBsZXRlIHN0YXRlIHNuYXBzaG90XG4gICAqL1xuICBnZXRTbmFwc2hvdCgpOiBXb3JrYm9va1N0YXRlU25hcHNob3Qge1xuICAgIGNvbnN0IHNoZWV0VGFibGVTdGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgIFxuICAgIC8vIEJ1aWxkIG1hcCBvZiBzaGVldCBzdGF0ZXNcbiAgICB0aGlzLl9zaGVldFRhYmxlU3RhdGVzLmZvckVhY2goKHRhYmxlU3RhdGUsIHNoZWV0SWQpID0+IHtcbiAgICAgIHNoZWV0VGFibGVTdGF0ZXMuc2V0KHNoZWV0SWQsIHRhYmxlU3RhdGUuZ2V0U3RhdGUoKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUkLnZhbHVlLFxuICAgICAgYWN0aXZlU2hlZXRJbmRleDogdGhpcy5fYWN0aXZlU2hlZXRJbmRleCQudmFsdWUsXG4gICAgICBpc0Z1bGxzY3JlZW46IHRoaXMuX2lzRnVsbHNjcmVlbiQudmFsdWUsXG4gICAgICBzaGVldFRhYmxlU3RhdGVzLFxuICAgICAgbWV0YWRhdGE6IHRoaXMuX21ldGFkYXRhJC52YWx1ZVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGxhc3QgYWNjZXNzZWQgdGltZXN0YW1wXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUxhc3RBY2Nlc3NlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50TWV0YWRhdGEgPSB0aGlzLl9tZXRhZGF0YSQudmFsdWU7XG4gICAgdGhpcy5fbWV0YWRhdGEkLm5leHQoe1xuICAgICAgLi4uY3VycmVudE1ldGFkYXRhLFxuICAgICAgbGFzdEFjY2Vzc2VkOiBuZXcgRGF0ZSgpXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGxhc3QgbW9kaWZpZWQgdGltZXN0YW1wXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUxhc3RNb2RpZmllZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50TWV0YWRhdGEgPSB0aGlzLl9tZXRhZGF0YSQudmFsdWU7XG4gICAgdGhpcy5fbWV0YWRhdGEkLm5leHQoe1xuICAgICAgLi4uY3VycmVudE1ldGFkYXRhLFxuICAgICAgbGFzdE1vZGlmaWVkOiBuZXcgRGF0ZSgpXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNoZWV0IGNvdW50IGluIG1ldGFkYXRhXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVNoZWV0Q291bnQoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudE1ldGFkYXRhID0gdGhpcy5fbWV0YWRhdGEkLnZhbHVlO1xuICAgIHRoaXMuX21ldGFkYXRhJC5uZXh0KHtcbiAgICAgIC4uLmN1cnJlbnRNZXRhZGF0YSxcbiAgICAgIHNoZWV0Q291bnQ6IHRoaXMuX3NoZWV0VGFibGVTdGF0ZXMuc2l6ZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IG1ldGFkYXRhXG4gICAqL1xuICBnZXRNZXRhZGF0YSgpOiBXb3JrYm9va01ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fbWV0YWRhdGEkLnZhbHVlO1xuICB9XG59XG5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Workbook state interfaces for state management
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Jvb2stc3RhdGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtdGFibGUvc3JjL2xpYi9yZW5kZXJlci9tb2RlbHMvd29ya2Jvb2stc3RhdGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXb3JrYm9vayBzdGF0ZSBpbnRlcmZhY2VzIGZvciBzdGF0ZSBtYW5hZ2VtZW50XG4gKi9cblxuaW1wb3J0IHsgVGFibGVTdGF0ZVNuYXBzaG90IH0gZnJvbSAnLi90YWJsZS10eXBlcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpbml0aWFsaXppbmcgV29ya2Jvb2tTdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtib29rU3RhdGVDb25maWcge1xuICAvKipcbiAgICogV29ya2Jvb2sgSURcbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgd29ya2Jvb2sgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGFjdGl2ZSBzaGVldCBpbmRleFxuICAgKi9cbiAgaW5pdGlhbEFjdGl2ZVNoZWV0SW5kZXg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya2Jvb2sgbWV0YWRhdGEgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYm9va01ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFdoZW4gdGhlIHdvcmtib29rIHdhcyBjcmVhdGVkXG4gICAqL1xuICBjcmVhdGVkQXQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHdvcmtib29rIHdhcyBsYXN0IG1vZGlmaWVkXG4gICAqL1xuICBsYXN0TW9kaWZpZWQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHdvcmtib29rIHdhcyBsYXN0IGFjY2Vzc2VkXG4gICAqL1xuICBsYXN0QWNjZXNzZWQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBzaGVldHMgaW4gd29ya2Jvb2tcbiAgICovXG4gIHNoZWV0Q291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBzbmFwc2hvdCBvZiB3b3JrYm9vayBzdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtib29rU3RhdGVTbmFwc2hvdCB7XG4gIC8qKlxuICAgKiBXb3JrYm9vayBJRFxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Jvb2sgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3RpdmUgc2hlZXQgaW5kZXhcbiAgICovXG4gIGFjdGl2ZVNoZWV0SW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogRnVsbHNjcmVlbiBzdGF0ZVxuICAgKi9cbiAgaXNGdWxsc2NyZWVuOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgb2Ygc2hlZXQgSUQgdG8gVGFibGVTdGF0ZVNuYXBzaG90XG4gICAqL1xuICBzaGVldFRhYmxlU3RhdGVzOiBNYXA8c3RyaW5nLCBUYWJsZVN0YXRlU25hcHNob3Q+O1xuXG4gIC8qKlxuICAgKiBXb3JrYm9vayBtZXRhZGF0YVxuICAgKi9cbiAgbWV0YWRhdGE6IFdvcmtib29rTWV0YWRhdGE7XG59XG5cbiJdfQ==
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Z-Index values for table layering
3
+ *
4
+ * Range Groups:
5
+ * - Table layers: -1 to 10
6
+ * - Dropdowns/Popups: 100-1001
7
+ * - Overlays/Modals: 2000-9999
8
+ */
9
+ export var TableZIndex;
10
+ (function (TableZIndex) {
11
+ // ============================================
12
+ // Table Internal Layers (-1 to 10)
13
+ // ============================================
14
+ /** Hidden scroll spacer element (below everything) */
15
+ TableZIndex[TableZIndex["SCROLL_SPACER"] = -1] = "SCROLL_SPACER";
16
+ /** Base table body layer */
17
+ TableZIndex[TableZIndex["BODY"] = 1] = "BODY";
18
+ /** Sticky columns in body (left/right) */
19
+ TableZIndex[TableZIndex["STICKY_COLUMN"] = 2] = "STICKY_COLUMN";
20
+ /** Virtual scroll sticky header */
21
+ TableZIndex[TableZIndex["VIRTUAL_SCROLL_HEADER"] = 3] = "VIRTUAL_SCROLL_HEADER";
22
+ /** Column resize handles */
23
+ TableZIndex[TableZIndex["RESIZE_HANDLE"] = 4] = "RESIZE_HANDLE";
24
+ /** Sticky body cells (inline styled) */
25
+ TableZIndex[TableZIndex["STICKY_BODY_CELL"] = 5] = "STICKY_BODY_CELL";
26
+ /** Sticky header cells (inline styled) */
27
+ TableZIndex[TableZIndex["STICKY_HEADER_CELL"] = 7] = "STICKY_HEADER_CELL";
28
+ /** Standard table sticky header container */
29
+ TableZIndex[TableZIndex["STICKY_HEADER_CONTAINER"] = 8] = "STICKY_HEADER_CONTAINER";
30
+ /** Focused cell (keyboard navigation - highest in table) */
31
+ TableZIndex[TableZIndex["FOCUSED_CELL"] = 10] = "FOCUSED_CELL";
32
+ // ============================================
33
+ // Dropdowns & Popups (100-1001)
34
+ // ============================================
35
+ /** Table actions dropdown menu */
36
+ TableZIndex[TableZIndex["DROPDOWN"] = 100] = "DROPDOWN";
37
+ /** Add column button and similar UI elements */
38
+ TableZIndex[TableZIndex["FLOATING_BUTTON"] = 1000] = "FLOATING_BUTTON";
39
+ /** Column filter popup */
40
+ TableZIndex[TableZIndex["POPUP"] = 1001] = "POPUP";
41
+ // ============================================
42
+ // Overlays & Modals (2000-9999)
43
+ // ============================================
44
+ /** Modal backdrop/overlay */
45
+ TableZIndex[TableZIndex["MODAL_OVERLAY"] = 2000] = "MODAL_OVERLAY";
46
+ /** Table actions dropdown backdrop */
47
+ TableZIndex[TableZIndex["TABLE_ACTIONS_BACKDROP"] = 9996] = "TABLE_ACTIONS_BACKDROP";
48
+ /** Table actions dropdown menu */
49
+ TableZIndex[TableZIndex["TABLE_ACTIONS_DROPDOWN"] = 9997] = "TABLE_ACTIONS_DROPDOWN";
50
+ /** Row actions dropdown backdrop */
51
+ TableZIndex[TableZIndex["ROW_ACTIONS_BACKDROP"] = 9998] = "ROW_ACTIONS_BACKDROP";
52
+ /** Row actions dropdown menu */
53
+ TableZIndex[TableZIndex["ROW_ACTIONS_DROPDOWN"] = 9999] = "ROW_ACTIONS_DROPDOWN";
54
+ })(TableZIndex || (TableZIndex = {}));
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiei1pbmRleC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtdGFibGUvc3JjL2xpYi9yZW5kZXJlci9tb2RlbHMvei1pbmRleC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQU4sSUFBWSxXQStEWDtBQS9ERCxXQUFZLFdBQVc7SUFDckIsK0NBQStDO0lBQy9DLG1DQUFtQztJQUNuQywrQ0FBK0M7SUFFL0Msc0RBQXNEO0lBQ3RELGdFQUFrQixDQUFBO0lBRWxCLDRCQUE0QjtJQUM1Qiw2Q0FBUSxDQUFBO0lBRVIsMENBQTBDO0lBQzFDLCtEQUFpQixDQUFBO0lBRWpCLG1DQUFtQztJQUNuQywrRUFBeUIsQ0FBQTtJQUV6Qiw0QkFBNEI7SUFDNUIsK0RBQWlCLENBQUE7SUFFakIsd0NBQXdDO0lBQ3hDLHFFQUFvQixDQUFBO0lBRXBCLDBDQUEwQztJQUMxQyx5RUFBc0IsQ0FBQTtJQUV0Qiw2Q0FBNkM7SUFDN0MsbUZBQTJCLENBQUE7SUFFM0IsNERBQTREO0lBQzVELDhEQUFpQixDQUFBO0lBRWpCLCtDQUErQztJQUMvQyxnQ0FBZ0M7SUFDaEMsK0NBQStDO0lBRS9DLGtDQUFrQztJQUNsQyx1REFBYyxDQUFBO0lBRWQsZ0RBQWdEO0lBQ2hELHNFQUFzQixDQUFBO0lBRXRCLDBCQUEwQjtJQUMxQixrREFBWSxDQUFBO0lBRVosK0NBQStDO0lBQy9DLGdDQUFnQztJQUNoQywrQ0FBK0M7SUFFL0MsNkJBQTZCO0lBQzdCLGtFQUFvQixDQUFBO0lBRXBCLHNDQUFzQztJQUN0QyxvRkFBNkIsQ0FBQTtJQUU3QixrQ0FBa0M7SUFDbEMsb0ZBQTZCLENBQUE7SUFFN0Isb0NBQW9DO0lBQ3BDLGdGQUEyQixDQUFBO0lBRTNCLGdDQUFnQztJQUNoQyxnRkFBMkIsQ0FBQTtBQUM3QixDQUFDLEVBL0RXLFdBQVcsS0FBWCxXQUFXLFFBK0R0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWi1JbmRleCB2YWx1ZXMgZm9yIHRhYmxlIGxheWVyaW5nXG4gKiBcbiAqIFJhbmdlIEdyb3VwczpcbiAqIC0gVGFibGUgbGF5ZXJzOiAtMSB0byAxMFxuICogLSBEcm9wZG93bnMvUG9wdXBzOiAxMDAtMTAwMVxuICogLSBPdmVybGF5cy9Nb2RhbHM6IDIwMDAtOTk5OVxuICovXG5leHBvcnQgZW51bSBUYWJsZVpJbmRleCB7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFRhYmxlIEludGVybmFsIExheWVycyAoLTEgdG8gMTApXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIFxuICAvKiogSGlkZGVuIHNjcm9sbCBzcGFjZXIgZWxlbWVudCAoYmVsb3cgZXZlcnl0aGluZykgKi9cbiAgU0NST0xMX1NQQUNFUiA9IC0xLFxuICBcbiAgLyoqIEJhc2UgdGFibGUgYm9keSBsYXllciAqL1xuICBCT0RZID0gMSxcbiAgXG4gIC8qKiBTdGlja3kgY29sdW1ucyBpbiBib2R5IChsZWZ0L3JpZ2h0KSAqL1xuICBTVElDS1lfQ09MVU1OID0gMixcbiAgXG4gIC8qKiBWaXJ0dWFsIHNjcm9sbCBzdGlja3kgaGVhZGVyICovXG4gIFZJUlRVQUxfU0NST0xMX0hFQURFUiA9IDMsXG4gIFxuICAvKiogQ29sdW1uIHJlc2l6ZSBoYW5kbGVzICovXG4gIFJFU0laRV9IQU5ETEUgPSA0LFxuICBcbiAgLyoqIFN0aWNreSBib2R5IGNlbGxzIChpbmxpbmUgc3R5bGVkKSAqL1xuICBTVElDS1lfQk9EWV9DRUxMID0gNSxcbiAgXG4gIC8qKiBTdGlja3kgaGVhZGVyIGNlbGxzIChpbmxpbmUgc3R5bGVkKSAqL1xuICBTVElDS1lfSEVBREVSX0NFTEwgPSA3LFxuICBcbiAgLyoqIFN0YW5kYXJkIHRhYmxlIHN0aWNreSBoZWFkZXIgY29udGFpbmVyICovXG4gIFNUSUNLWV9IRUFERVJfQ09OVEFJTkVSID0gOCxcbiAgXG4gIC8qKiBGb2N1c2VkIGNlbGwgKGtleWJvYXJkIG5hdmlnYXRpb24gLSBoaWdoZXN0IGluIHRhYmxlKSAqL1xuICBGT0NVU0VEX0NFTEwgPSAxMCxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERyb3Bkb3ducyAmIFBvcHVwcyAoMTAwLTEwMDEpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIFxuICAvKiogVGFibGUgYWN0aW9ucyBkcm9wZG93biBtZW51ICovXG4gIERST1BET1dOID0gMTAwLFxuICBcbiAgLyoqIEFkZCBjb2x1bW4gYnV0dG9uIGFuZCBzaW1pbGFyIFVJIGVsZW1lbnRzICovXG4gIEZMT0FUSU5HX0JVVFRPTiA9IDEwMDAsXG4gIFxuICAvKiogQ29sdW1uIGZpbHRlciBwb3B1cCAqL1xuICBQT1BVUCA9IDEwMDEsXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBPdmVybGF5cyAmIE1vZGFscyAoMjAwMC05OTk5KVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBcbiAgLyoqIE1vZGFsIGJhY2tkcm9wL292ZXJsYXkgKi9cbiAgTU9EQUxfT1ZFUkxBWSA9IDIwMDAsXG4gIFxuICAvKiogVGFibGUgYWN0aW9ucyBkcm9wZG93biBiYWNrZHJvcCAqL1xuICBUQUJMRV9BQ1RJT05TX0JBQ0tEUk9QID0gOTk5NixcbiAgXG4gIC8qKiBUYWJsZSBhY3Rpb25zIGRyb3Bkb3duIG1lbnUgKi9cbiAgVEFCTEVfQUNUSU9OU19EUk9QRE9XTiA9IDk5OTcsXG4gIFxuICAvKiogUm93IGFjdGlvbnMgZHJvcGRvd24gYmFja2Ryb3AgKi9cbiAgUk9XX0FDVElPTlNfQkFDS0RST1AgPSA5OTk4LFxuICBcbiAgLyoqIFJvdyBhY3Rpb25zIGRyb3Bkb3duIG1lbnUgKi9cbiAgUk9XX0FDVElPTlNfRFJPUERPV04gPSA5OTk5XG59XG4iXX0=